将障碍置于障碍内部的原因是什么?
为什么不把它留空?
void createLevel(void);
void createLevel();
答案 0 :(得分:40)
括号中的void
来自C.在C中,带有空括号的函数可以包含任意数量的参数。在C ++中,它没有任何区别。
答案 1 :(得分:15)
void
是过去(C)的遗留物。在C ++中,您应该将括号留空。当然,如果它让你开心,你可以保留void
。
在C中,如果声明一个带空括号的函数,则意思是参数的数量是未知的。 void
可用于明确表示不需要参数。
答案 2 :(得分:10)
在C ++中没有区别。
以下内容仅适用于C:
实际上,根据this thread:
当你在某个地方声明一个函数func()时,这意味着你没有说出任何关于它的遗骸。另一方面,func(void)表示没有参数
perfect_circle甚至发布了一个精彩的代码示例来说明这一点:
skalkoto@darkstar:~$ cat code.c
#include <stdio.h>
int main()
{
void func(void);
func(3);
return 0;
}
void func(int a)
{
printf("Nothing\n");
}
skalkoto@darkstar:~$ gcc code.c
code.c: In function `main':
code.c:6: error: too many arguments to function `func'
skalkoto@darkstar:~$ cat code1.c
#include <stdio.h>
int main()
{
void func();
func(3);
return 0;
}
void func(int a)
{
printf("Nothing\n");
}
skalkoto@darkstar:~$ gcc code1.c
skalkoto@darkstar:~$ ./a.out
Nothing
skalkoto@darkstar:~$
答案 3 :(得分:4)
没有区别,这只是个人偏好,例如向自己展示在设计功能时你不会忘记给予参数。
答案 4 :(得分:1)
这是一个优惠的事情。有些人喜欢把事情弄清楚而不是暗示。两者之间没有实际区别。
答案 5 :(得分:1)
如果你老了(我这样做),只能把 VOID
void
放在参数中