c++ - 为什么函数参数名称在 C++ 声明中不重要?

标签 c++ c compiler-construction standards

声明中的函数参数名称(很可能位于头文件中)似乎被编译器完全忽略。允许使用声明版本 1 或 2 编译以下内容的原因是什么?


实现

void A::doStuff(int numElements, float* data)
{
    //stuff
}

声明 - 版本 1

class A
{
public:
    void doStuff(int numElements, float* data);
}

声明 - 版本 2

class A
{
public:
    void doStuff(int, float*);
}

最佳答案

编译器只需要知道方法需要什么样的参数。编译器如何调用它们并不重要。

编译器需要知道参数类型有几个原因:

  • 如果有多个方法名相同,则决定使用哪个方法
  • 判断输入参数是否有效
  • 判断参数是否需要强制转换
  • 决定如何生成代码来调用方法并处理响应

不过,我建议使用第一个 header 版本。它可以帮助其他开发人员(和您自己)使用函数并了解哪些参数具有哪些含义。

关于c++ - 为什么函数参数名称在 C++ 声明中不重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10225042/

相关文章:

php - 流式 ZIP 文件无法在 OSX 中打开

c++ - 从 C++(大量使用 STL)切换到 C 来构建解释器

c - 测量功能前后的挂钟时间

c - 为什么整数类型的发送顺序是颠倒的?

c - 如何判断可执行文件是否是为当前机器编译的?

c++ - Rust 与 C++ std::string 互操作

C++数组声明问题

c++ - 我可以在编译时强制执行此运算符调用计数要求吗?

parsing - 有多少种方法来构建解析器?

c++ - 编译器如何识别其主机的硬件?哪个组件?