将空隙放入params的原因是什么?
为什么不把它留空?
void createLevel(void);
void createLevel();
Run Code Online (Sandbox Code Playgroud)
Ale*_*ler 15
void
在函数参数列表中是过去(C)的遗留物.在C++中,您应该将括号留空.当然,你可以保留void
它,如果它让你开心.
在C中,如果声明一个带有空括号的函数,则意味着参数的数量是未知的.void
可用于明确表示不需要参数.
Jus*_*ier 10
在C++中没有区别.
以下仅适用于C:
实际上,根据这个帖子:
当你在某个地方声明一个函数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:~$
Run Code Online (Sandbox Code Playgroud)