關於static函式問題,關於static函式問題

時間 2022-03-14 13:58:50

1樓:御含靈

4 extern int my_test_func(int);

5 static int my_test_func(int a)這兩行是矛盾的 static的只能在當前的cpp檔案裡使用 當然不能宣告為extern;

全部改成static

4 static int my_test_func(int);

5 static int my_test_func(int a)

2樓:陳宗權

在c語言中,static與extern是相互對立的。

用於函式時,前者限制這個函式只能在本檔案內使用,後者表示這個函式允許在別的檔案中使用,預設按後者的情況處理。

用於全域性變數時,前者限制這個變數只能在本檔案內的函式中使用,後者一般用在標頭檔案中表示這個變數是允許在多個檔案中共用。

3樓:

#define max(a,b) (a > b ? a:b); // 這裡不要分號

4 extern int my_test_func(int); // 如果這裡是宣告型別不對,而且這宣告也是沒有必要的,如果是要外部引用,那下面的呼叫會出問題

改為 static int my_test_func(int);

5 static int my_test_func(int a) // 這裡是函式定義

4樓:匿名使用者

重複定義造成的。

extern int my_test_func(int);宣告乙個外部函式

extern 說明 後面的函式或變數,不在當前的.c (.o裡面)**鏈結的時候才會去找。

下面static int my_test_func(int a)你又把它定義成乙個內部函式。static修飾全域性變數(函式名,你可以看成是乙個函式指標,你printf乙個函式名時,就是乙個位址,所以它其實就是乙個全域性指標)時,起到限定作用域的用處,也就是限制在當前.c檔案裡面使用。

所以有矛盾。

你這樣寫,不會報錯。

int my_test_func(int);

static int my_test_func(int a)

5樓:

我也是來學習的,根據不同編譯器,會產生不同結果。我已用vc6.0測試,滅有問題。

關於c語言函式問題,關於C語言函式問題

一般判定都是為真執行,為假不執行 圖中的 p指的是 以p變數的內容為位址的變數 而你只要看看,它所指向的變數的值是不是0,如果不是0,那麼就會執行 這個地方其實不用換成for,該用什麼用什麼,如果是題目需要的話就只能這樣寫了 for p p 10 然後在裡面寫一堆語句.不過我是沒這樣寫過,不太清楚....

關於函式的問題,乙個關於函式的問題

第一題 log3 2 log9 2 log4 3 log8 3 log3 2 1 2 log3 2 1 2 log2 3 1 3 log2 3 3 2 log3 2 5 6 log2 3 3lg2 2lg3 5lg3 6lg2 9 lg2 2 5 lg3 2 6lg2lg3 ps,我個人懷疑,你的題...

關於EXCEL公式問題,關於excel函式公式的問題

如果你的公式是陣列公式,請輸入完成之後同時按下 ctrl shift enter 組合鍵之後才能正常生成陣列公式。如是不是陣列公式,那麼修改你的公式如下 vlookup a1,sheet2 a b,2,0 然後下拉公式。對乙個身份證號碼是15位或是18位進行判斷,用邏輯判斷函式if 和字元個數計算函...

關於求和函式的問題,求和函式問題

sum 返回某一單元格區域中所有數字之和。語法 sum number1,number2,number1,number2,為 1 到 30 個需要求和的引數。說明 1.直接鍵入到參數列中的數字 邏輯值及數字的文字表示式將被計算,請參閱下面的示例一和示例二。2.如果引數為陣列或引用,只有其中的數字將被計...

C關於成員函式建構函式的問題

1.是的,對資料成員的初始化可以通過其函式成員,但系統在沒有建構函式的情況下就會自動呼叫預設的建構函式,建構函式是專門進行初始化的。別的函式有別的函式的用途。2.類的資料成員在定義時是不允許初始化的,初始化是通過建構函式的 class date 其初始化是通過建構函式的,當然可以啦!3.以摟住給的題...