函式宣告 定義,書本上這句話怎麼理解,求大神解答?

時間 2021-06-07 22:25:59

1樓:曾曾曾

記住以下幾點劉行了;

1.函式必須在使用前宣告,例如

這裡就要宣告函式int func(int, int);

也可以寫成int func(int x, int y);

如果main函式在這裡,看上面兩句

int func(int x, int y)//此處不能省略形參名綜上所述:1函式要麼在使用之前定義,2要麼在使用之前宣告一下有這個函式存在(例子屬於第二種)不然編譯器會認為該函式不存在,而報錯

函式宣告(以上第二種情況)時可以忽略形參名,因為從編譯器角度來看,形參名沒什麼用,有型別就行了

2樓:邱昊宇

這句話只是想說「函式宣告中,引數列表裡的引數名無法在別處引用」。

書上之所以寫這麼複雜,不寫「人話」,是因為這一段是《The C Programming Language》中對於函式宣告語法定義的說明。涉及「定義」的東西,為了嚴謹、巧妙避免重複,很容易寫出這樣的文字。

Similarly, if the declarators in the parameter declarations contain identifiers and the function declarator does not head a function definition, the identifiers go out of scope immediately.

類似地,如果形式引數宣告中的宣告符包含識別符號,且函式定義的開頭沒有函式宣告符,則該識別符號超出了作用域。這裡的翻譯並不合適,這樣可能好一些:類似地,如果形式引數宣告中的宣告符包含識別符號,且函式宣告符後未出現函式定義,這些識別符號將立即超出作用域。

c 中函式宣告時使用void函式名(函式型別)是什麼意思 為什麼要這樣宣告函式?

你看那銳雯 首先去驗證。你測試一下乙個不需要返回值的函式不寫void,會發生什麼?報什麼錯就會發現如果不寫編譯器會認為那你需要返回 int 第二,仔細研究c語言的函式返回值語法,以及同樣類似的問題,編譯器找不到函式宣告會發生什麼?這個時候編譯器是如何判定返回值型別的?這些都在c標準規定了,當然有些是...

C 中是否允許在函式中定義函式?

暗能量泡泡 C 不能支援直接在函式中定義函式。C 11通過支援Lambda函式 實際上是個匿名class的物件 來實現類似功能。其他方式可以使用函式中定義struct class的方式再定義其靜態成員函式的方式來模擬一樣的效果。 Johnny Wong 可以使用class struct的實現,它們支...

關於可測函式的定義?

謎團 第一種定義是最一般的定義。第二種定義是從可測空間到的函式可測定義。這時候是上的 代數取由所有開集生成的 代數 稱為 代數 第一種定義在這種特殊空間上就變為,由於屬於開集生成的 代數,所以第一種定義可以推出第二種定義。從第二種定義推第一種定義麻煩一些。假設也就是是所有拉回去還是可測集的集的集合。...