0
我有一個簡單的程序:爲什麼gcc -std = c99將關鍵字asm當作函數處理?
int main() {
asm ("movl $-2, %ecx");
return 0;
}
當我建立與
gcc soc.c
程序它生成的文件沒有任何問題。但是,當我與它搭建時
gcc -std=c99 soc.c
我收到以下錯誤消息。
soc.c: In function ‘main’:
soc.c:2:4: warning: implicit declaration of function ‘asm’ [-Wimplicit-function-declaration]
asm ("movl $-2, %ecx");
^
/cygdrive/c/Users/rsahu/AppData/Local/Temp/ccEMHjZ4.o:soc.c:(.text+0x15): undefined reference to `asm'
/cygdrive/c/Users/rsahu/AppData/Local/Temp/ccEMHjZ4.o:soc.c:(.text+0x15): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `asm'
collect2: error: ld returned 1 exit status
爲什麼使用-std=c99
變化如何關鍵字asm
被處理?
出於某種原因,我是錯誤的印象,即'asm'是在語言的關鍵字,和參數的解釋是留給下編譯。感謝您的澄清。 –