NaN Asked:2020-08-24 19:01:32 +0000 UTC2020-08-24 19:01:32 +0000 UTC 2020-08-24 19:01:32 +0000 UTC C++ 中的匿名参数 772 我注意到如果你创建一个匿名参数,编译器不会发誓。 例如 void func(int) { return; } 不会造成任何问题。 我只是在互联网上找不到任何关于它的信息。也许我找错地方了。为什么是它以及如何吃它?或者我在哪里可以读到它?提前致谢 c++ 3 个回答 Voted Harry 2020-08-24T19:09:59Z2020-08-24T19:09:59Z 碰巧不需要这样的论点。 好吧,例如,一些库函数将两个变量的函数作为参数。你不需要它——你有一个参数,第二个是不需要的。不曾用过。 怎么办?当然,您可以编写一个带有两个参数的函数——而不是使用第二个。但是编译器会感到惊讶:) 当然,还有其他方法可以绕过此警告,例如, int f(int a, int b) { (void)b; return 2*a; } 或者 #pragma warning( push ) #pragma warning( disable : 4100 ) int f(int a, int b) { return 2*a; } #pragma warning( pop ) 在 Visual C++ 中。 但最简单的是只指定参数的类型而不指定其名称...... user7860670 2020-08-24T19:29:02Z2020-08-24T19:29:02Z 这是来自 C(甚至来自 B)的众多返祖之一。它实现了一种极端报复性的方法来声明/定义函数,包括: 声明一个完全没有参数的函数,然后在定义时指定任意参数(幸运的是,这在 C++ 中是禁止的) 声明和定义时 const 参数限定符之间的不匹配 声明和定义时参数名称不匹配 即使在 C 本身中,也没有理由诉诸这样的技巧,而且通常是所有这些不一致的地方,包括。省略的参数名称被归类为缺陷。省略参数名称以抑制未使用的参数警告也是一个常见错误。存在未使用的参数也可以归类为缺陷,但有一个标准(C++17 起)属性明确指示不会使用参数[[maybe_unused]]: void func([[maybe_unused]] int const value) { return; } Best Answer cassius 2020-08-24T19:47:53Z2020-08-24T19:47:53Z 如果不需要该参数,并且如果编译器将未使用的变量视为错误,则程序将不会编译。在这种情况下,它可以匿名。
碰巧不需要这样的论点。
好吧,例如,一些库函数将两个变量的函数作为参数。你不需要它——你有一个参数,第二个是不需要的。不曾用过。
怎么办?当然,您可以编写一个带有两个参数的函数——而不是使用第二个。但是编译器会感到惊讶:)
当然,还有其他方法可以绕过此警告,例如,
或者
在 Visual C++ 中。
但最简单的是只指定参数的类型而不指定其名称......
这是来自 C(甚至来自 B)的众多返祖之一。它实现了一种极端报复性的方法来声明/定义函数,包括:
即使在 C 本身中,也没有理由诉诸这样的技巧,而且通常是所有这些不一致的地方,包括。省略的参数名称被归类为缺陷。省略参数名称以抑制未使用的参数警告也是一个常见错误。存在未使用的参数也可以归类为缺陷,但有一个标准(C++17 起)属性明确指示不会使用参数
[[maybe_unused]]:如果不需要该参数,并且如果编译器将未使用的变量视为错误,则程序将不会编译。在这种情况下,它可以匿名。