繁体   English   中英

函数原型中的不同参数名称

[英]Different parameter name in function prototype

我发现一个程序在函数原型设计和声明中使用了不同的参数,所以我做了一个基本程序。

#include <iostream>
using namespace std;

void add(int a, int b);

int main()
{
     add(3,4);
}

void add(int c, int d){
    int e = c + d;
    cout << e << endl;
}

我运行这个程序,它工作正常。 这是否意味着在“函数原型”和“函数声明”中不需要相同的参数名称?

是的,声明和定义中使用的参数名称不必相同。 相反,参数的类型(和顺序)应该相同。 事实上,参数名并不是必需的,尤其是在函数声明中,即使在定义中,如果不使用它们也可以省略。

[dcl.fct]/13

(强调我的)

可以选择将标识符作为参数名称提供; 如果出现在函数定义 ( [dcl.fct.def] ) 中,它会命名一个参数。 [注意:特别是,参数名称在函数定义中也是可选的,不同声明中用于参数的名称和函数的定义不必相同 如果参数名称出现在不是定义的函数声明中,则不能在其函数声明之外使用,因为这是其潜在作用域 ([ basic.scope.proto ]) 的范围。 — 尾注 ]

[dcl.fct]/8

返回类型、参数类型列表引用限定符cv-qualifier-seq以及函数是否具有非抛出 异常规范,但没有默认参数 ( [dcl.fct.default] )或异常规范 ( [except.spec] ) 是函数类型的一部分。

请注意,参数类型列表(不包括它们的名称)是函数类型的一部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM