A. c語言中定義函數時,什麼時候必須定義形參,什麼時候可以省略,求指點~謝謝啦
函數聲明時只需寫出形參類型。
函數定義時必須寫出形參類型和變數名。
C語言中的標准函數printf便使用這種機制。在聲明不確定形參的函數時,形參部分可以使用省略號「…」代替。「…」告訴編譯器,在函數調用時不檢查形參類型是否與實參類型相同,也不檢查參數個數。
(1)c語言中函數聲明必須帶參數擴展閱讀
示例
例如:
void ConnectData(int i,...)
在上面的代碼中,編譯器只檢查第一個參數是否為整型,而不對其他參數進行檢查。
對於可變參數的函數,需要進行特殊的處理。首先需要引用 <stdarg.h> 頭文件,然後利用va_list類型和va_start、va_arg、va_end 3個宏讀取傳遞到函數中的參數值。
這幾個宏的定義如下(在 ANSI C 中):
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
void va_start( va_list arg_ptr, prev_param )。
B. 為什麼有些函數聲明時沒有參數
你指的是C語言中的函數聲明時沒有參數名嗎?
函數聲明可以只有參數類型而沒有參數名,參數名和定義時的參數名不同也是允許的。因為C編譯器在編譯時忽略參數名,只檢查函數的參數的類型和順序是否與調用的函數匹配。
C. c語言帶參數函數的原型聲明
void show_n_char(char,int) 如果是在c++是合法的,char, int 是友元,表示只有參數類型無參數變數名,但在c 語言中這樣寫不規范, 要寫成:void show_n_char(char ch,int a)
此處為形參, 實際使用中要用實際參數傳入。 如 調用該函數時,傳入實參
show_n_char('d', 4);
char,int賦值給誰??? 這樣看你的函數定義中是怎樣使用這參數的。
在該函數中 ch='d' , int =4 ,
void show_n_char(char ch,int a)
{
char ch2=ch;
int b =a
printf ("");
}
則 ch2='d' , b=4
不知可看懂?