c++函数原型和变量名与数据类型
C++ Function Prototypes aAnd Variable Names Versus Data Types Only
在c++中声明函数原型时,有以下区别吗?
void SomeFunction( int Argument )
{
//Stuff
}
和
void SomeFunction( int )
{
//Stuff
}
本质上我想问的是,为什么你在函数的原型中写一个变量参数名,而不仅仅是数据类型?
在函数声明中编译器不需要参数名。它是供人类食用的。它们给出了函数正在做什么的附加信息。好的函数名加上好的参数名可以作为方法的即时文档。
如果要实际使用参数,则需要一个参数名称。有些编译器(例如Microsoft vc++)如果你命名了一个参数,但没有在函数的任何地方使用它,会给你一个警告。
注:您在示例中使用的不是原型,而是实际的函数定义。在原型中,参数name完全是可选的。
关于"声明"answers"定义"的区别的附加注释。以下两个例子都是定义:
void SomeFunction( int Argument )
{
//Stuff
}
原型应该是一个声明,看起来像这样:
void SomeFunction( int ) ;
所以,你可以在你的头文件中有一个如上的声明。然后在您的cpp中定义如下函数:
void SomeFunction( int Argument )
{
Argument = Argument + 1;
}
如你所见,声明没有指定参数名,但是定义指定了它并使用了它。
您不必在定义或声明中写入参数名称。如果是这样,它们甚至不需要相同。如果您计划实际使用该参数,则必须编写一个。
函数原型不需要参数名,但它需要变量的类型。
void function(int);
void function(int param);
使用原型是为了让你可以按任何顺序定义函数。但是,如果您想要查看参数名称(比如当您将鼠标悬停在函数上时),这些名称必须在原型中。如果您没有原型,您将看到定义中的名称。
如果没有原型,函数定义可以兼作声明,但必须在调用函数之前定义。当然,将使用定义中的变量名。
参数在定义中必须有名称,但在原型中这些名称是可选的。
相关文章:
- 从模板创建通用打印函数,以打印基元数据类型变量的值
- 如何在变量中插入多种不同长度的数据类型?
- 如何使用C++中可以具有多种数据类型的单个变量
- C++ 成员不是变量,而只是数据类型的名称吗?
- 指针数据类型变量如何包含对象?
- 如果一个变量在它之前释放了另一个(相同的数据类型)变量,如何将其分配给内存?
- 在变量名后声明带有 () 的非内部类型与不使用变量名的行为不同。即 std::map<int,char>x(); - 这是怎么回事?
- 如果输入变量的数据类型与以前不同,如何使我的循环仍然正常运行?
- 为什么当我们把变量"u"的数据类型从长整型更改为整型时,模幂会出错?
- 可用作数据类型的变量
- 模板参数在具有相同数据类型的单个类型名的构造函数中不起作用
- 在 CPP 中动态分配变量的数据类型
- C 将字符串变成不同的数据类型变量
- 基本数据类型变量 VS 对象变量
- 字符串数据类型变量初始化
- 从字符串中提取不同的数据类型变量
- 为什么函数允许变量名和数据类型名,但关键字不允许
- 由于PROTOBUF服务器中的字符串数据类型变量和客户端通过cpp中recv端的套接字进行通信,因此正在获取segfau
- 为什么在visual studio中连续的int数据类型变量位于12个字节的偏移
- c++函数原型和变量名与数据类型