C語言編程時可能會發生的錯誤(不定時更新)

VS

提示"CL.exe已退出,代碼爲2",檢查是否有函數沒有寫返回值。

某個文件內的全局變量不要放在它的頭文件中,不然在主文件調用時會引發重定義錯誤。

定義結構體對齊時,#pragma pack(n)和#pragma pack()要成對使用,將結構放在它們中間,n取值爲1,2,4,8

GCC:

如果出現下面的錯誤,說明內聯彙編出錯,如果內聯彙編沒有添加約束(即沒有使用“:”),則寄存器前只用一個%,如果添加了約束,用兩個%%:C:\Users\\AppData\Local\Temp\ccXLT1Rg.s:65: Error: bad register name `%%eax'

查看彙編代碼時發現有ud2指令,這個指令會使系統宕機,字節碼:0x0f,0x0b,說明編譯器認爲向下執行會發生錯誤,檢查代碼是否訪問了不應該訪問的位置,比如低地址(0x00000000,0x00000001,0x00000002。。。等等);

編譯時出現某函數未找到錯誤,此時檢查編譯時是否少添加了源文件。

不要在頭文件定義const,會報錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章