国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

詳談C與C++的函數聲明中省略參數的不同意義

2020-01-26 13:50:46
字體:
來源:轉載
供稿:網友

一直都以為C/C++中形如

int func();

這樣的函數聲明其意義就是一個參數 void(沒有參數)的函數。然而今天在看C++的時候突然看到這么一句:

對于帶空參數表的函數,C和C++有很大的不同。在C語言中,聲明int func2();表示“一個可帶任意參數(任意數目,任意類型)的函數”。這就妨礙了類型檢查。而在C++語言中它就意味著“不帶參數的函數”。

這一點老師并沒有講到,學校教科書里也沒有提到,帶著好奇心,我特意試了一下

test.c

#include <stdio.h>void fun();int main(){  fun(1, 1);  return 0;}void fun(int a, int b){  printf("%d/n", a+b);}
編譯通過$ gcc -Wall test.c -o test$ ./test 2
$ mv test.c test.cpp$ g++ -Wall test.cpp -o testtest.cpp: 在函數‘int main()'中:test.cpp:6:10: 錯誤:too many arguments to function ‘void fun()' fun(1, 1); ^test.cpp:3:6: 附注:在此聲明 void fun();   ^~~

這也解釋了為什么主函數要寫成這樣的原因

int main(void)

以上這篇詳談C與C++的函數聲明中省略參數的不同意義就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 商洛市| 北宁市| 龙门县| 固始县| 舞阳县| 边坝县| 禄劝| 香格里拉县| 油尖旺区| 呼玛县| 泽普县| 雅江县| 慈利县| 高台县| 安岳县| 霍城县| 台北县| 什邡市| 延长县| 浠水县| 新干县| 保德县| 米林县| 曲麻莱县| 中超| 桐乡市| 攀枝花市| 苍山县| 盐津县| 琼海市| 廊坊市| 鄂托克旗| 东港市| 新河县| 尼玛县| 漳浦县| 芜湖县| 郁南县| 平昌县| 岳普湖县| 安平县|