C与C++函数声明时的几个小的语法差异
C与C++函数声明时的几个小的语法差异
1 无参函数的声明
void f() { } int main(void) { f(10,“hello"); return 0; }
上述代码在C语言中是完全正确的。但是在C++中确是错误的。
void f()
* 在C中表示函数f可以接受任何类型,任意数量的参数。(然而并没有提供如何利用这些参数的机制,如果想使用可变参数函数,格式为 void f(type a1,…))。
* 而在C++中表示函数f不接受任何参数。
所以要想让无参函数声明在C和C++中保持一致含义,请使用如下格式:
void f(void);
2 函数返回值
f(void) { return 1; }
上述代码在C中是正确的,但是在C++中是不正确的。
如果声明函数时,不声明其返回值,
* C编译器自动认为函数返回int类型。
* C++编译器认为这是语法错误。
所以如果要让你的代码在C和C++下都正确,请为函数原型加上返回值类型。
相关推荐
小飞侠V 2020-11-02
linmufeng 2020-09-08
angqiuli 2020-06-06
fengjing81 2020-01-19
fengjing81 2020-01-10
First00 2020-01-05
yfisaboy 2019-12-28
fuzhikunpython 2019-12-02
zscomehuyue 2019-11-26
陈旭阳 2019-11-16
ericasadun 2019-08-16
racy 2019-09-08
smallMK 2019-05-21
xiaoren 2019-07-01
zyb00yaonuli 2017-01-24
liubingger 2016-12-13
csdnhaow 2016-10-11
ncisoft 2016-01-19
苗疆三刀的随手记 2019-06-27