一、c與c++的細微區別
在函式宣告中:
無論是c還是在c++,都
可以省略
形式引數名。
但是,通常都
不建議省略形式引數名。
在函式定義中:
1. 當需要使用形式引數的時候,顯然,必須給形式引數命名。
2. 當不需要使用形式引數的時候,c與c++有微小差異:
—— c不能省略形式引數名
, 即使
不使用。
—— c++可以省略形式引數名,如果
不使用。
—— 並且在c++中,如果給不使用的形式引數命名,可能會得到乙個警告。
二、示例:
#include
<
stdio.h
>
void
greeting_omit(
const
char
*name);
void
greeting_unuse(
const
char
*name);
void
greeting_nowarning(
const
char
*name);
intmain(
void)
三、三個函式分別實現如下:
三、1void
greeting_omit(
const
char*)
——在c中是錯誤:
1. msvc :
error c2055: expected formal parameter list, not a type list
error c2055: 應輸入形參表,而不是型別表
2. gcc : (報錯更清晰一些)
error: parameter name omitted
錯誤: 省略引數名
——在c++中正確,且無警告。
三、2void
greeting_unuse(
const
char
*name)
在c和c++中都正確,但可能得到乙個警告:
1. msvc :
warning c4100: 'name' : unreferenced formal parameter
warning c4100: 「name」: 未引用的形參
2. gcc :
warning: unused parameter 'name'
警告: 未使用的引數『name』
在gcc中,開啟這個警告的選項是
-wunused-parameter
。該選項包含在-wall中。
三、3void
greeting_nowarning(
const
char
*name)
在c和c++中都正確,並且無警告。
c語言指標的形式引數
宣告陣列 char strings 3 形參 指標 char strings char strings 編譯器會把陣列表示法轉化成指標表示法,僅能用於形參 宣告陣列 char strings 3 4 形參 指向指標的指標 char strings 一般不用於形參 char strings 4 僅能用...
C語言當中的實際引數及形式引數
首先我們來定義乙個函式,使其可以交換兩個整形變數的內容.include include void swap int x,int y int main 程式執行結果如下 我們不是定義了乙個函式,要將num1與num2的值進行交換嗎?為什麼num1與num2的值沒有發生變化呢?這就涉及到了c語言中函式的...
C語言中全域性變數與區域性變數 形式引數
形式引數也是區域性變數 作用僅限該函式,函式呼叫結束後釋放 c語言中區域性變數存在棧裡,全域性變數存靜態儲存區。區域性變數在棧空間上分配,這個區域性變數所在的函式被多次呼叫時,每次呼叫這個區域性變數在棧上的位置都不一定相同。區域性變數也可以在堆上動態分配,但是記得使用完這個堆空間後要釋放之。全域性變...