1. 程式人生 > >Linuxc基礎一

Linuxc基礎一

今天講了gcc的使用,c語言程式編譯步驟,編碼規範,程式的標頭檔案,man函式,記憶體以及資料儲存。
gcc使用

  1. 計算機能識別的唯一語言是二進位制語言
    語言發展:
機器語言 二進位制資料 ,11010101
組合語言 用符號表示一組操作 add call mov 直接操作硬體速度快
高階語言 用語句為單位進行操作 可移植

c語言是中級語言,具有彙編特性同時也有高階語言的可移植性。
編譯器:將原來的程式碼編譯成計算機可執行的程式碼。相同的程式碼經過不同的編譯器編譯,可以被不同的裝置執行。
2. c語言程式編譯步驟

預處理 處理“#”開頭的內容,進行替換,去掉註釋 生成預處理檔案,字尾名是 .i
編譯 編譯器對程式碼進行編譯 最複雜,耗時最長的過程 生成彙編檔案,字尾名是 .s
彙編 把彙編檔案編譯成二進位制目標檔案 生成目標檔案,字尾名是 .o
連結 把多個目標檔案照一定規則整合成一個可以執行的程式 生成是最終的可以執行的程式
  1. gcc的命令
gcc -E 對檔案進行預處理
gcc -S 對檔案進行編譯 生成彙編檔案
gcc -c 對檔案進行彙編 生成目標檔案
gcc -o 結合成的檔案重新命名
gcc 預設生成的檔案 檔名是 a.out

程式與標頭檔案
4. 標頭檔案的包含方式
#include <stdio.h> 預設是從/usr/include/目錄下搜尋檔案
#include “stdio.h” 先在當前目錄下搜尋檔案,如果沒有再去/usr/include下找
stdio.h是C語言的標準輸入輸出標頭檔案
5. man
①有返回值,返回值是int型別,用來表示程式結束狀態如果程式是正常結束返回0,異常結束,返回其他值
②C語言有且僅有一個main函式
③程式main函式開始執行
3. {}程式碼塊 return 表明函式結束,下面的部分都不執行 printf()是stdio.h檔案中的一個函式,所以使用這個函式必須包含stdio.h標頭檔案
4. 編碼規範
① “{”下面一行內容和這個“{”要有4個空格的縮排
②單詞要有空格
③不同的邏輯程式碼之間要空行
記憶體
程式:
①沒有執行的程式 存在儲存裝置中,比如 硬碟 ,u盤,手機。
②執行起來的程式 程式會被都到記憶體中執行記憶體中存該程式的可執行程式碼資料
儲存單位
①位 bit 是一個二進位制數字 只能表示0或1
②位元組 Byte 使用的單位是B 1B=8b
③kB 1kB=1024B
④MB 1MB=1024kB
⑤GB 1GB=1024MB
記憶體最小的儲存單位是位元組 ,記憶體為每個位元組分配了一個編號這個編號叫做記憶體地址。
記憶體為位元組分配編號,這個編號的位數是固定的要統一編號
①32位系統 編號是32位的二進位制 00001…101010(32個) 4B
②64位系統 編號是64位的二進位制 00001…10101010(64個) 8B
資料儲存
記憶體存的是二進位制資料,以1個位元組為例

  1. 無符號數 只有正數,不帶負號
    其範圍是0~255
  2. 有符號數 帶正負號的數
    記憶體取最高位為符號位
最高位 型別
0 正數
1 負數

有符號數的取值範圍是-128~127
有符號數在一個位元組範圍內
127+1=-128
1111 1111 代表 -1