国产探花免费观看_亚洲丰满少妇自慰呻吟_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武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江西省| 剑川县| SHOW| 黑水县| 宝兴县| 噶尔县| 石泉县| 盐津县| 浦江县| 高安市| 梧州市| 绥化市| 阳江市| 乐都县| 齐齐哈尔市| 万山特区| 深州市| 扎鲁特旗| 霍州市| 阿拉尔市| 渭南市| 乌拉特中旗| 揭西县| 宁化县| 宝兴县| 称多县| 来安县| 新源县| 清徐县| 基隆市| 杭州市| 新乡县| 晴隆县| 类乌齐县| 罗甸县| 高淳县| 吉木萨尔县| 汝城县| 安吉县| 华阴市| 永和县|