看板 ASM 關於我們 聯絡資訊
在書上看到在assembly裡 call C function 時 會在function 前加個 _ 例如 在C是 int main() 在assembly中就會是 call _main 好讓assembler知道這是一個C function (上面這句話不知道對不對) 但我在linux 上 跟cygwin 裡 用gcc 我用一個test.c 這就只有一個int main(){return 0;} 在cygwin裡用gcc -S test.c 裡面是有加_的 但在linux上 同樣檔案 gcc -S test.c 但我看 assembly他並沒有加_ 想請問這是為什麼呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.22.63.250
sunneo:這得看compiler對於calling conversion的name prefix 04/02 20:49
sunneo:加_表示這是cdecl,但是不全然cdecl就一定是底線 04/02 20:50