Cpp 头文件缺少变量名

Q L*_*Liu 2 c++

所以我正在查看带有以下声明的字符串头文件:

string(const char*);
Run Code Online (Sandbox Code Playgroud)

如果没有变量名,如何使用输入参数?另外,不写变量名有什么意义。我觉得如果你有一个接受 2 个相同类型参数的方法,你会被搞砸。但主要问题是我如何在没有变量名的情况下访问这个输入参数。谢谢!

Hug*_*ung 5

就编译器而言,它不需要在声明函数时知道参数的实际名称。它所需要的只是函数的签名:返回类型、名称和参数类型。

您只在定义函数时需要参数名称,即在源文件中。

// foo.h
void foo(const char*);

// foo.c
#include "foo.h"
void foo(const char * c) {
    //OK
}

void bar(const char*) {
    //Indeed, we have no way to access the parameter
}
Run Code Online (Sandbox Code Playgroud)

只要这些签名匹配,一切都会正常进行。如果这是您的头文件,通常最好在声明中包含参数名称,因为它是有用的文档。

  • 顺便说一句,如果您实际上不需要该参数(但您必须使用特定的函数签名,例如用于回调或虚拟函数),您甚至可以在函数定义中省略其名称。这具有使有关未使用参数的编译器警告静音的优点。 (2认同)