__func__是預置在編譯器中的宏,并不包含于任何頭文件,所以直接調用即可,不需要做任何其它操作。

創新互聯建站2013年開創至今,先為武鄉等服務建站,武鄉等地企業,進行企業商務咨詢服務。為武鄉企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
__func__是一個字符串,值為調用__func__函數的函數名。
比如
void test_func(void)
{
printf("%s",__func__);
}
這時的__func__的值就是常量字符串"test_func"。
由于__func__并不是C語言規范中規定的必須宏定義,所以并不是所有編譯器都可以支持。當調用__func__編譯出錯情況下,即為編譯器不支持該宏,需要自行修改程序。比如手動在需要的函數入口處定義一個顯式的__func__宏。
比如
void test_func(void)
{
#define __func__ "test_func"
printf("%s",__func__);
}
Func 是你自己定義的函數的名字。 例:void func1(int i),其中void指的是返回值類型是空,默認情況下指的是int型,func1是你定義的函數名,int i是你定義一個形式參數,類型是整型的
func不是C語言系統提供的類型,除非用戶自定義。例如,如果用戶用#define func int定義過,那么func就與int等價,編譯時編譯器將把代碼語句中獨立的func全更換為int;如果用戶用typedef char* func;定義過,則func是char*的別名,func與char*等價,以后代碼中寫func pk;則是聲明pk為char*型指針。用戶自定義情況很多,不可能一一列舉。
這個很麻煩,不過不難。每次計算的時候,搞清楚各個值就好了。
首先
func調用兩次,參數都是主函數的k和m
這兩個值是不變的。也就是說
兩次都是func(4,1)
對于func
第一次
a=4
b=1
m=0
i=2
//初始化
i+=m+1
-
i=i+m+1=2+0+1=3
m=i+a+b=3+4+1=8
返回8
于是第一個printf輸出8,
第二次
a=4
b=1
m=8
i=3
//這兩個變量是static
的,所以第二次進入的時候,m和i都是第一次退出時的值。
i+=m+1
-
i=i+m+1=3+8+1=12
m=i+a+b=12+4+1=17
返回17
于是第二個printf輸出17
選A
當前文章:c語言函數func c語言函數fun里沒有數字
文章位置:http://www.js-pz168.com/article36/dddgcpg.html
成都網站建設公司_創新互聯,為您提供關鍵詞優化、網站維護、網站營銷、網站排名、標簽優化、做網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯