为了账号安全,请及时绑定邮箱和手机立即绑定

c89,c99,c11到底怎么定义

int main(int argc,char *argv[])
{    return 0;}
int main([void])
{    return 0;}
void main()
{    [return;]}
有人说第一个是标准的,表示main函数接受参数,第二个,表示main无参数,第三个不标准的,连C语言之父没有说过这样表示。。。也这些好混乱。。。。。在网上昏了。。
求高手解释。


正在回答

1 回答

你写的基本上没错。

//不过第二个应该是
int main(void)
//而第一个也可以写成
int main(int argc, char **argv)  // argv参数用数组或是指针形式是一样的

main函数的返回值肯定是int型,所以返回void是错的。

你记住这两种main声明形式就好了

1 回复 有任何疑惑可以回复我~
#1

_一个人_0 提问者

谢谢了,不过主函数在什么情况传入参数?
2015-06-07 回复 有任何疑惑可以回复我~
#2

onemoo 回复 _一个人_0 提问者

在执行编译出来的可执行程序时,可以附带各种参数。比如Linux CLI中常用的: ls -al aaa bbb ls 是程序,而 -al aaa bbb 就是参数,它们就保存在argv中...具体就不解释了。 这些main函数的参数由操作系统的C运行库传入。
2015-06-09 回复 有任何疑惑可以回复我~

第一个相对标准点,不过也可以不写参数

第二个也可以这么写,也是正确的

但是最后一个嘛,告诉你完全是错误的

http://www.imooc.com/video/6207  这节课程中有详细解释


1 回复 有任何疑惑可以回复我~
#1

_一个人_0 提问者

谢谢了你的回答
2015-06-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

c89,c99,c11到底怎么定义

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信