標籤:
C語言語句
1.空語句:當一個if或者while判斷部分能完成工作,空語句可以用來表示if或者while內的空迴圈體
1 if(a == b );
2.gcc編譯器
1 //程式的編譯過程: 2 // 預先處理:pre-processing 3 // 編譯:compiling 4 // 彙編:assembling 5 // 連結:linking 6 7 //預先處理階段:*.c或者*.C檔案會預先處理成*.i檔案 ,這個階段主要處理#ifdef #include #define 8 命令:gcc -E test.c -o test.i 9 10 //編譯階段 :輸入*.i檔案,編譯產生彙編檔案*.s 11 命令:gcc -S test.i -o test.s12 13 //彙編階段 ,將*.s 變成*.o二進位檔案14 命令:gcc -c test.s -o test.o15 16 //連結階段:將*.o二進位檔案匯聚成一個可執行檔檔案17 命令:gcc test.o -o test18 19 //上述過程可以簡述為:20 命令:gcc -c test.c -o test.o21 gcc test.o -o test22 或者:23 gcc test.c -o test
3.gcc常用選項;
1 //同時編譯多個*.c檔案2 命令:gcc -o test file1.c file2.c file3.c3 //三個檔案編譯後產生test可執行檔,注意三個檔案只能有一個允許有main函數,如果是僅僅編譯目標檔案,那可以沒有main函數。
4.gcc最基本的用法:
1 //-c 只編譯,不串連成可執行檔 2 //-o output_filename 確定輸出的檔案名稱 3 //-g 產生調試器gdb必須的符號,要對源碼進行調試,必須在編譯的時候加這個參數 4 //-O 對程式進行最佳化編譯串連,但是編譯會相對慢一些 5 //-O2 比-O更好的最佳化編譯,但是編譯串連會更慢 6 //-Wall 輸出所有警告資訊 7 //-w 關閉所有警告,建議不要使用此選項 8 //IDirname ,將名為IDirname的目錄加入到程式標頭檔目錄列表中,預先處理階段使用的選項 9 10 //C語言標頭檔會被大量使用,通常是 Header files 和定義檔案 definition files 組成。11 //標頭檔包含函數原型聲明,常量定義的檔案,用於儲存程式的聲明12 //定義檔案用於儲存程式的實現implementation。13 //標頭檔以.h為尾碼14 #include<stdio.h> //去系統預設的包含檔案目錄去找 一般是系統提供的標頭檔 系統預設的包含目錄為 /usr/include15 #include "stdio.h" //先到目前的目錄去找,再到指定的IDirname去找 自己寫的一般放在目前的目錄,大型程式會統一放在一個目錄16 17 //-L dirname 將名為dirname的目錄加到程式庫檔案的搜尋目錄中,在串連過程中使用的參數。
5.系統提供的庫分為兩種:靜態庫和動態庫
gcc預設的庫檔案存放目錄 /usr/lib
6 問題:
1.寫出float與0比較的語句
1 //由於float精度的問題不可寫成:2 if(x == 0.0);3 if(x != 0.0);4 //應該寫成:5 if(x >= -0.00001 && x <= 0.00001);6 7 //不可將浮點型變數用 == 或者 !=比較,設法轉換成 <= 和 >=
2.switch 條件必須是整型和char
3.for(;1;)是一個死迴圈
Linux C 程式 (SIX)