-2
我想用C語言獲得程序集的標籤地址。這裏是例子使用C獲取程序集的標籤地址C
我有一個start.S中的文件:
.fun:
// do something
而且我有一個main.c文件,:
volatile unsigned int * p = (unsigned int *) 0x1000;
我想寫的標籤地址「樂趣」成0x1000的內存,所以我寫
*p = fun;
但它不能與錯誤信息被編譯:
'fun' undeclared (first use in this function)
感謝您的幫助。
重命名'.fun'到'fun'和使用的彙編文件中'.globl fun'導出的符號?如果目標是Windows並且您沒有使用ELF,那麼您可能必須在'.S'文件中爲'fun'標籤預置一個'_'(下劃線)。 –
當然,在_C_中,你還必須聲明'extern'用於'fun' –
@MichaelPetch如果目標是32位,則'_'必須加前綴。至少在Windows上64位名稱修改不使用'_'。 –