(1)、預處理:將原始檔中的預處理指令替換成對應的內容;指令:gcc -e 原始檔
(2)、編譯:將預處理之後的檔案轉換成彙編檔案,會生成乙個.s結尾的彙編;指令:gcc -s 原始檔或前一步生成的預處理檔案
通常在使用編譯指令的時候直接使用gcc 原始檔就可以生成乙個可執行檔案。下面是簡單的步驟:
開啟乙個文字編輯器,編寫c程式。
儲存檔案為 ***.c。
開啟命令提示符,進入到儲存檔案所在的目錄。
鍵入 gcc ***.c,輸入回車,編譯**。
如果**中沒有錯誤,命令提示符會跳到下一行,並生成 a.out 可執行檔案。
鍵入 ./a.out 來執行程式。
(1)、順序結構:通過運算子的結合性,保證**從上往下執行
(2)、分支結構:通過分支語句保證條件滿足和不滿足,來進行控制(分支語句:1、if-else;2、switch-case-break;)
(3)、迴圈結構:通過迴圈語句保證條件滿足和不滿足,迴圈執行(迴圈語句:1、while;2、do-while;3、for(a;b;c))
區分:while&do-while:
do-while:先執行在判斷條件;
while:先判斷在執行;
break&continue:
break:跳出最近的迴圈體,之後的所以迴圈都不再執行
continue:跳出本次迴圈,後面的語句本次不再執行
輸入:可以是以檔案的形式或從命令列中進行。c 語言提供了一系列內建的函式來讀取給定的輸入,並根據需要填充到程式中。在c語言基礎學習時,可以簡單地認為是鍵盤的輸入。
c語言的標準庫包含的輸入輸出函式常用的有以下6個:
(1)、int getchar(void)函式從螢幕讀取下乙個可用的字元,並把它返回為乙個整數。這個函式在同乙個時間內只會讀取乙個單一的字元。
(2)、int putchar(int c)函式把字元輸出到螢幕上,並返回相同的字元。這個函式在同乙個時間內只會輸出乙個單一的字元。
(3)、char *gets(char *s)函式從stdin讀取一行到s所指向的緩衝區,直到乙個終止符或 eof。
(4)、int puts(const char *s)函式把字串 s 和乙個尾隨的換行符寫入到stdout
(5)、int scanf(const char *format, ...)函式從標準輸入流stdin讀取輸入,並根據提供的format來瀏覽輸入。
(6)、int printf(const char *format, ...)函式把輸出寫入到標準輸出流stdout,並根據提供的格式產生輸出。
format可以是乙個簡單的常量字串,但也可以分別指定 %s、%d、%c、%f 等來輸出或讀取字串、整數、字元或浮點數。
使用輸入輸出語句需要注意的一些問題:
1、不能輸入指定長度的字串,當輸入長度超過接收變數長度時,會造成記憶體溢位、可能程式結束。
解決方法:先定義乙個大的點的緩衝區,再使用strcpy()把字串複製到指定長度的存放變數。
2、如果上面的情況不結束程式的話,使用printf()會輸入原來輸入的字串。
3、如果使用getchar()語句,輸入的長度不止1個字元時,如果下面還有輸入語句,那麼剩下的字元就會輸入到下面的語句。
編譯過程和編譯程式筆記
圖 1.3 編譯的各個階段 詞法分析 從左到右乙個乙個字元地讀入源程式,對構成源程式的字元進行掃瞄和分解,從而識別出乙個個單詞。語法分析 在詞法分析的基礎上將單詞序列分解成各類語法短語,這些語法短語也稱為語法單位,可以表示成語法樹。語法分析依據的是語言的語法規則,即描述程式結構的規則 例如 id1 ...
C 動態解析編譯程式(記憶體)
獲取命令內容 string strcommand dbcommon.getassemblevalue sender as toolstripmenuitem tag.tostring 5 編譯器初始化 icodecompiler comp new csharpcodeprovider createc...
C語言學習筆記 C程式結構
在我們學習 c 語言的基本構建塊之前,讓我們先來看看乙個最小的 c 程式結構,在接下來的章節中可以以此作為參考。c 程式主要包括以下部分 include int main 接下來我們講解一下上面這段程式 程式的第一行 include是預處理器指令,告訴 c 編譯器在實際編譯之前要包含stdio.h檔...