gcc中,pack指令就是這樣的:
#pragma pack(1)
預設的記憶體對齊方式以及記憶體對齊規則在不同的系統上是有區別的,所以gcc編譯器在這一點上在不同的系統上也是區別對待的。
雖然到現在也沒有看到gcc在linux系統下的使用 #pragma pack(n) 的記憶體對齊規則,但是從我測試的結果來看是這樣:預設的對齊是按照 int 型(4位元組)對齊,如果指定 #pragma pack(n) 中的 n 的話,n 不能大於預設對齊指定的長度,即如果預設對齊是 4 的話,n的取值可以是 1、2、4,超過 4 之後作為 4 處理。在 windows 等系統上似乎沒有這個限制。
linux下gcc命令筆記
首先介紹一下gcc各種引數的含義 o 指定生成的輸出檔案 e 僅執行編譯預處理 s 將c 轉換為彙編 wall 顯示警告資訊 c 僅執行編譯操作,不進行連線操作。1 gcc c fpic c 生成與位置無關的 o 檔案 目標檔案 fpic表明使用位址無關 2 gcc shared wl o libm...
linux 下gcc的使用
在linux系統中,可執行檔案沒有統一的字尾,系統從檔案的屬性來區分可執行檔案和不可執行檔案。而gcc則通過字尾來區別輸入檔案的類別,下面介紹gcc所遵循的部分約定規則。c為字尾的檔案,c語言源 檔案 a為字尾的檔案,是由目標檔案構成的庫檔案 c,cc或.cxx 為字尾的檔案,是c 源 檔案 h為字...
linux 下gcc的使用
在linux系統中,可執行檔案沒有統一的字尾,系統從檔案的屬性來區分可執行檔案和不可執行檔案。而gcc則通過字尾來區別輸入檔案的類別,下面介紹gcc所遵循的部分約定規則。c為字尾的檔案,c語言源 檔案 a為字尾的檔案,是由目標檔案構成的庫檔案 c,cc或.cxx 為字尾的檔案,是c 源 檔案 h為字...