本文介绍了参数名省略,C ++ vs C的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在C ++中,我倾向于在某些情况下省略参数的名称。

In C++, I tend to omit the parameter's name under some circumstances. But in C, I got an error when I omitted the parameter's name.

这里是代码:

void foo(int);  //forward-decl, it's OK to omit the parameter's name, in both C++ and C

int main()
{
    foo(0);
    return 0;
}

void foo(int)  //definition in C, it cannot compile with gcc
{
    printf("in foo\n");
}

void foo(int)  //definition in C++, it can compile with g++
{
    cout << "in foo" << endl;
}

为什么?不能在C函数定义中省略参数的名称?

Why is that? Can't I omit the parameter's name in C function definition?

推荐答案

否,在C中,不能省略函数中的参数的标识符

No, in C you cannot omit identifiers for parameters in function definitions.

C99标准说:

C ++ 14标准说:

The C++14 standard says:

这篇关于参数名省略,C ++ vs C的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-16 08:20