[英]Why does GCC's __attribute__((…)) syntax use double parentheses?
[英]Why does gcc ignore __attribute__((stdcall))?
當我用gcc
版本8.1.1編譯以下C源代碼時,我收到一個warning: 'stdcall' attribute ignored [-Wattributes]
。
為什么gcc選擇忽略這個屬性,我該怎么做才能讓它接受呢?
__attribute__((stdcall)) int S(int a) {
return a * (a+1);
}
int main() {
return S(6);
}
gcc文檔說:
stdcall
在x86-32目標上 ,
stdcall
屬性使編譯器假定被調用函數彈出用於傳遞參數的堆棧空間,除非它采用可變數量的參數。
(強調我的。)
因此,如果您不編譯32位計算機,則無法使用stdcall
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.