【发布时间】:2011-11-25 21:54:48
【问题描述】:
这两个声明有区别吗?
int foo( int a, ... );
和
int foo( int a ... );
如果没有区别,那么使第二个语法有效的意义何在?
【问题讨论】:
-
避免像 C++ 中的瘟疫一样的 varadic 函数。它破坏了强类型的精神。有很多理由不这样做,也有很多方法可以解决您认为需要它的任何问题。
-
我确实避免使用它们,并且我同意这些建议。我很少使用它们,以至于我从未注意到这种语法上的怪异。看起来很奇怪。
-
哇,即使没有逗号,它真的可以编译。
-
@EdHeal 你跑题了。您至少应该尝试回答实际问题,而不是简单地告诉他“不要那样做”。
-
@PaulManta:嗯,这就是为什么它被留下作为评论而不是答案。