[問題]call C function有要加 _ (underscore) 嗎?

看板ASM (組合語言)作者 (allstars)時間16年前 (2008/04/01 14:16), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
在書上看到在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

04/02 20:49, , 1F
這得看compiler對於calling conversion的name prefix
04/02 20:49, 1F

04/02 20:50, , 2F
加_表示這是cdecl,但是不全然cdecl就一定是底線
04/02 20:50, 2F
文章代碼(AID): #17yTCp6_ (ASM)
文章代碼(AID): #17yTCp6_ (ASM)