首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"int main (vooid)"?这是如何工作的呢?

"int main (vooid)"?这是如何工作的呢?
EN

Stack Overflow用户
提问于 2011-02-14 06:40:55
回答 4查看 5.8K关注 0票数 136

我最近不得不输入一个小的C测试程序,在这个过程中,我不小心使用了vooid而不是void,从而在主函数中犯了一个拼写错误。

然而,它仍然有效。

将它缩减到最小的完整版本,我最终得到了:

代码语言:javascript
复制
int main (vooid) {
    return 42;
}

这确实是编译(gcc -Wall -o myprog myprog.c),并且在运行时,它返回42。

这到底是怎样的有效代码?

这是从我的bash shell中剪切并粘贴的文字记录,以显示我正在做的事情:

代码语言:javascript
复制
pax$ cat qq.c
int main (vooid) {
    return 42;
}

pax$ rm qq ; gcc -Wall -o qq qq.c ; ./qq

pax$ echo $?
42
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-14 06:44:29

它只是使用了“老式”的函数声明语法;您隐式地声明了一个名为vooidint参数。

票数 220
EN

Stack Overflow用户

发布于 2011-02-14 06:45:18

这是有效的代码,因为myproc.c包含:

代码语言:javascript
复制
int main (vooid) // vooid is of type int, allowed, and an alias for argc
{     
  return 42; // The answer to the Ultimate Question
} 

vooid包含1加上传递的参数数量(即argc)。因此,实际上您所做的就是将argc重命名为vooid

票数 70
EN

Stack Overflow用户

发布于 2011-02-14 06:49:11

在C中,函数参数的默认类型是int。因此,您的程序将单词vooid视为int main(int vooid),这是完全有效的代码。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4987415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档