- C++中函数必须有返回类型,而C默认为int。
- C++中返回类型必须和return实际的返回类型一致,或者可以执行隐式转换,C中并没有该限制,可以任意返回。
- C++中没有参数的函数调用时不能有参数,C中可以使用任意类型,任意数量的参数进行调用。
f(void) {char a = 0; double d = 0; if(a == 'a') { return &a; } else { return d; } } int main() { int i = 0; double d = 0; double *pd = &d; f(i, pd); return 0; }
纯C实现中进行编译,会给出警告,但是默认会编译通过(很多编译器能通过设置把警告当做错误的情况除外)。但是C++中给出编译错误。vs2015带的编译器给出如下错误信息: