C與C 的細微區別 省略形式引數名

2021-06-22 22:39:24 字數 1455 閱讀 3799

一、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語言中區域性變數存在棧裡,全域性變數存靜態儲存區。區域性變數在棧空間上分配,這個區域性變數所在的函式被多次呼叫時,每次呼叫這個區域性變數在棧上的位置都不一定相同。區域性變數也可以在堆上動態分配,但是記得使用完這個堆空間後要釋放之。全域性變...