1樓:
普通的變數定義一般是這樣:
type var;
比如int n;
那如果在前面加上typedef則表示型別定義,如typedef int n;這裡的n不在是變數,而是型別,可以用它定義變數,如n i;則告訴編譯器i的型別為和n的型別一樣(在不加typedef的時候)
同理,在你的問題中如果去掉typedef,則為int (*functor) (int a,int b),樓主明白這樣的functor是什麼意思吧,它是一個函式指標,指向的函式返回型別為int,引數型別為int,int。那如前所述,加上typedef之後它變成一個型別,用它定義的變數型別和不加typedef時functor的型別一樣,如functor fp;fp便是一個函式指標,指向的函式返回型別為int,引數型別為int,int。
這樣定義的一個好處就是直觀清晰。
2樓:
還沒見過這樣用的。
typedef 是宣告別名的。
如typedef int a;
a即為整型的別名。
typedef int *a;
定義a為整型指標的別名。
期待高手的回答。。。
3樓:匿名使用者
自定義一個函式指標,
這個指標指向一類函式,這類函式有兩個int型的入參,同時返回值為int。
指標名叫functor.
函式的使用:
int myone(int x,int y);
int mytwo(int x,int y);
typedef int (*functor) (int a,int b);
functor = myone;
int s = functor(10,20);
functor = mytwo;
int m = fnnctor(30,40);
c 中的用法,C 操作符 用法
在c 裡,除了c語言的功能之外,還代表 引用 只能在建立變數的時候使用,格式是 型別 變數名 另一個變數。如 inta 0,b a,c 宣告三個變數a b c,b和a等價,c是獨立的變數注意 型別識別符號是指目標變數 等於號右邊 的型別。宣告引用時,必須同時對其進行初始化,不能讓他指向其他變數。引用...
c關於運算子優先順序,c中的運算子優先順序順序是什麼
因為 只是在這copy條語句結束後才 1,假設a 0,則a a 等同於0 0,當然是錯的了,但是現在a的值變為1 補充一點,c 不提倡在同一語句當中多次修改同一個變數的值,樓主知道怎麼回事就行了,有些跟編譯器有關 後置自加是 先取值,變數才加 所以a a 中,大於運算子比較的是相同的值。a a 等價...
關於c 中的運算,C 中的 運算子是什麼意思,請舉例
是異或符號,交換作用的語句是a a b b b a a a b 第一句以後a的值為a b,當b a的時候相當於b a b b b a,因為異或的性質所以b b a a,所以b就等於了a,然後a b就相當於a b a b,這樣a,b的值就交換了 按位異或 運算 xor 000010 100010 10...