gpt4 book ai didi

c++ - 为什么逗号在 C++ 可变函数声明中是可选的?

转载 作者:可可西里 更新时间:2023-11-01 17:58:53 26 4
gpt4 key购买 nike

这两个声明有区别吗?

int foo( int a, ... );

int foo( int a ... );

如果没有区别,那么使第二个语法有效的意义何在?

最佳答案

这是推测,但在 C++ 中,有一个没有其他参数的函数是有意义的,例如void f(...) 而在 C 中,这样的函数没有用处(据我所知),因此 ... 必须遵循一些其他参数,因此,逗号。

从语法的角度来看,简单地允许 void f( int a ... ) 并赋予它明显的含义比禁止它更简单,而且不会造成太大影响编译器编写者的负担或程序员的任何混淆。

(我最初认为这可能与使参数包的语法更规则有关,但我发现在任何情况下 C++03 都明确允许这样做。)

关于c++ - 为什么逗号在 C++ 可变函数声明中是可选的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8274570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com