【发布时间】:2011-03-30 02:20:22
【问题描述】:
void 是 C 编程语言中的数据类型吗?如果是这样,它可以存储什么类型的值?如果我们有int、float、char 等来存储值,为什么需要void?虚空的范围是多少?
【问题讨论】:
-
它完全没有任何意义,甚至不是原始 K&R pre-ansi C 的一部分。一些白痴认为
myFunction() { /* ... */ }看起来太整洁了,只需要添加一些 BSvoid myFunction(void) { /* ... */ }- 我认为还有其他更简洁的选择,以防您无法忍受使用char *,这是在 void 之前声明“通用”指针的常用方法。 -
@ChristofferBubach 但
function(void)!=function()在 C 中,因为在前者中您可以完全不输入参数,而在后者中您可以输入任何参数:geeksforgeeks.org/difference-int-main-int-mainvoid(C++ 中除外,两者都意味着函数完全不带参数) -
我不得不认为任何 c 编译器都能够很容易地检测到参数使用或外部链接,以便使用最有效的调用入口点。使用“...”或新的可变参数类型清楚地指示未知数量的参数的反向语法会更简洁,并且在仅使用空括号声明时仍然允许自动检测。这基本上就是新代码的外观,所以为什么还要添加 void,编译器在记账符号及其用法方面真的这么糟糕吗?