編輯:好的,我想我現在得到它:關於類型要求澄清投
案例1:
#include <stdio.h>
#define function(_a) ((_a)*2)
int main() {
int (*func)(int) = function(0); // function(0) = 0
func(7);
...
}
語法是否正確,但是,在運行過程中,主要將嘗試訪問地址爲NULL,這會導致unix環境中的windows/segmentation錯誤導致軟件崩潰。
案例2:
#include <stdio.h>
#define function(_a) ((_a)*2)
int main() {
int (*func)(int) = function;
func(7);
...
}
編譯錯誤,因爲「功能」,其實是一個宏,而不是實際的功能,爲此,一個函數指針不能指向它,可以這麼說。
案例3(正確的代碼):
#include <stdio.h>
int function(int _a){return ((_a)*2);};
int main() {
int (*func)(int) = function;
func(7);
...
}
我有沒有得到它的權利了?
這是一個的初始化爲'NULL'一個函數指針。 – Mysticial 2013-03-28 03:35:41
http://cdecl.org/ – 2013-03-28 03:44:06
好吧,但是當調用函數時會發生什麼,例如'func(7)'? – Caesar23 2013-03-28 04:21:17