C言語語法總結(隨時更新)


一、gcc
1. gcc xxx.c -o xxx #把原代碼編譯成可執行文件xxx
2. gcc -c xxx.c #編譯: 把原代碼編譯xxx.o后輟的目標文件
3. gcc xxx.o -o xxx #鏈接: 把xxx.o后輟的目標文件鏈接成可執行文件xxx ###2.3 步等於1,但是會多出個xxx.o的目標文件,可用於檢查錯誤

Visual Studio
1. F5或ctrl+F5或本地Windows調試器 #把原代碼編譯成可執行文件xxx
2. 生成->編譯 #生成xxx.obj目標文件
3. 生成->僅用於項目->僅鏈接 cDemo #生成可執行文件xxx.exe ###2.3 步等於1

二、語法
1. puts("hello world"); #輸出字符串
2. printf("a=%d, b=%d, c=%d", a, b, c); #10進制輸出
# %hd 十進制輸出 short 類型
# %d 十進制輸出 int 類型
# %ld 十進制輸出 long 類型
# %#ho 八進制輸出 short 類型
# %#o 八進制輸出 int 類型
# %#lo 八進制輸出 long 類型
# %#hx/%#hX 十六進制輸出 short 類型
# %#x/%#X 十六進制輸出 int 類型
# %#lx/%#lX 十六進制輸出 long 類型 十六進制的表示用到了字母, 因此x/X字母的表現形式不同,0b/0B 二進制 0 八進制 0x/0X 十六進制

# %c 輸出一個字符

# %f 輸出一個小數float #float與double類型的區別是, float點四字節(32位), double占8字節(64位)
# %lf 輸出一個小數double
# %e 以指數輸出一個float類型3.020000e-1
# %E 以指數輸出一個float類型3.020000E-1
# %le 以指數輸出一個double類型1.126400e+05
# %lE 以指數輸出一個double類型1.126400E+05
# %g 智能輸出小數float, 若是指數形式e小寫
# %lg 智能輸出小數double, 若是指數形式e小寫
# %G 智能輸出小數float, 若是指數形式E大寫
# %lG 智能輸出小數double, 若是指數形式E大寫

# %s 輸出一個字符串

3. int: 8Bit=1Byte(字節),一般占4字節,32Bit,也叫32位,如果不考慮正負數int類型保存的最大數為2的32次方減1, 約43億
short int(short) 只占2字節(16位),如果不考慮正負數short保存的類型最大數2的16次方減1, 等於65535
long int(long) 占8字節(64位),如果不考慮正負數long保存的類型最大數2的64次方減1,這個值很大,過億萬億了,我也不知道是多大
char 占一字節(8位) 如果不考慮正負數char保存的最大值為2的8次方減1, 等於255, 考慮正負數-128到127
4. 數據類型的長度(不同數據類型占的字節數稱為數據類型長度)
sizeof 方法可以檢測出長度 short 2字節, int 4字節, long 4/8字節(系統不一樣)
內存中存儲的數字是以補碼形式存儲的

三、多線程
1. 創建線程: pthread_create
2. 阻止調用線程並接收返回值: pthread_join
3. 終止當前線程: pthread_exit
4. 線程間的終止信號: pthread_cancel (注意取消點的問題)
5. 鎖 

四、進制之間的轉換
1. 整數任意進制轉換為十進制: 按權相加
如: 八進制轉成十進制 53627 = 5*84+ 3*83 + 6*82 + 2*81 + 7*80 = 22423
   十六進制轉成十進制 9FA8C = 9*164 + 15*163 + 10*162 + 8*161 + 12*160 = 653964
   二進制轉成十進制 11010 = 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = 26
2. 小數任意進制轉換為十進制:
如: 八進制轉成十進制423.5176 = 4*82 + 2*81 + 3*80 + 5*8-1 + 1*8-2 + 7*8-3 + 6*8-4 = 275.65576171875
3. 整數十進制轉換成任意進制: 除N取余, 逆序排列
如: 十進制轉成八進制 36926 = 36926/8 = 4615 % 6 (商為4615余6)
                            4615/8 = 576 % 7
                            576/8 = 72 % 0
                              72/8 = 9 % 0
                                9/8 = 1 % 1
                                1/8 = 0 % 1
                                                 = 110076
十進制轉二進制   42 = 42/2 = 21 % 0
                                    21/2 = 10 % 1
                                    10/2 = 5 % 0
                                      5/2 = 2 % 1
                                      2/2 = 1 % 0
                                      1/2 = 0 % 1
                                            = 101010
4. 小數十進制轉任意進制: 乘N取整, 順序排列
如: 十進制轉八進制 0.930908203125 = 0.930908203125*8 = 7.447265625 int 7(整數部分)
                                = 0.447265625*8 = 3.578125 int 3
                                = 0.578125*8 = 4.625 int 4
                                = 0.625*8 = 5.0 int 5
                                = 0.7345(八進制)
   十進制轉二進制 0.6875 = 0.6875 * 2 = 1.375 int 1
                        = 0.375 * 2 = 0.75 int 0
                        = 0.75 * 2 = 1.5 int 1
                        = 0.5 * 2 = 1.0 int 1
                        = 0.1011(二進制)
 
 
0.1   = 0.1 * 2 = 0.2 int 0
= 0.2 * 2 = 0.4 int 0
= 0.4 * 2 = 0.8 int 0
= 0.8 * 2 = 1.6 int 1
= 0.6 * 2 = 1.2 int 1
= 0.2 * 2 = 0.4 int 0
= 0.4 * 2 = 0.8 int 0
= 0.8 * 2 = 1.6 int 1
= 0.00011001………………(無限循環的二進制)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM