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

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

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

2020-05-23 13:37:10
字體:
來源:轉載
供稿:網友

一直都以為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++的函數聲明中省略參數的不同意義就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐至县| 新兴县| 册亨县| 奉化市| 石渠县| 澳门| 大埔县| 安岳县| 称多县| 紫金县| 响水县| 固镇县| 磐石市| 确山县| 清涧县| 平江县| 安阳县| 长海县| 苏州市| 昌宁县| 赣榆县| 含山县| 绥江县| 焦作市| 八宿县| 平和县| 沙坪坝区| 洞头县| 巴林左旗| 新郑市| 和平县| 赤壁市| 郎溪县| 吉隆县| 上饶县| 安顺市| 特克斯县| 华安县| 朝阳市| 如皋市| 尖扎县|