为什么在params中放空?

时间:2011-04-07 20:28:38

标签: c++

将障碍置于障碍内部的原因是什么?

为什么不把它留空?

void createLevel(void);

void createLevel();

6 个答案:

答案 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放在参数中