Posted on 2007-08-03 12:59
寶杉 閱讀(512)
評論(0) 編輯 收藏 引用 所屬分類:
C++
在Visual C++中,可以在函數類型前加_cdecl,_stdcall或者_pascal來表示其調用規范(默認為_cdecl)
// 被調用函數是以int為參數,以int為返回值
__stdcall int callee(int);
// 調用函數以函數指針為參數
void caller( __cdecl int(*ptr)(int));
// 在p中企圖存儲被調用函數地址的非法操作
__cdecl int(*p)(int) = callee; // 出錯
指針p和callee()的類型不兼容,因為它們有不同的調用規范。因此不能將被調用者的地址賦值給指針p,盡管兩者有相同的返回值和參數列。