【发布时间】:2011-11-27 03:05:21
【问题描述】:
void DoSomeThing(CHAR parm[])
{
}
int main()
{
DoSomeThing(NULL);
}
C/C++ 中是否允许为数组参数传递 NULL?
【问题讨论】:
-
@VladLazarenko:我认为你忽略了“可能”和“允许”之间的区别
-
“试试看”是一个很好的第一枪,但尤其是在 C 和 C++ 领域,有数百种编译器特定的语言扩展,想要可移植性的人必须咨询语言律师。并不是说这是一个特别好的问题。
-
@reader:不,这就是我们有规范的原因。仅仅因为它编译并不意味着它是允许的。
-
@JohnDibling -- 仅仅因为它被允许并不意味着它可以编译。
-
@JohnDibling 我认为编译器允许或拒绝事情,规范说明事情应该如何。您无法编译具有规范的程序。如果问题是有效用途,那么我们肯定会查看规范。看看这个帖子:lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-June/… 规范作者更新了规范,因为虽然事情应该按照规范,但在现实世界中并非如此。