搜索
查看: 1314|回复: 15
打印 上一主题 下一主题

求解答

[复制链接]
跳转到指定楼层
楼主
发表于 2014-2-26 18:33:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
        printf("Calling abort()\n");
    abort();

    return 0;/* This is never reached */

}
这个怎么用?
int main(void)后面的void是有什么用的。

最佳答案

查看完整内容

int main()和int main(void)的语义完全相同 在正常的C代码中完全等价
沙发
发表于 2014-2-26 18:33:02 | 只看该作者
int main()和int main(void)的语义完全相同
在正常的C代码中完全等价
板凳
发表于 2014-2-26 20:46:16 | 只看该作者
int main()和int main(void)是一样的,
最正式的写法是int main(void)
其中的void是代表空的意思,就是没有参数,
和带参数的 main(int argc, char* argv[])
是有区别的~~
地板
发表于 2014-2-26 21:42:27 | 只看该作者
说个例子吧~~
在CMD下,我们输入time
如果不带参数是这样的
带参数是这样的

004.png (4.16 KB, 下载次数: 0)

不带参数

不带参数

005.png (1.79 KB, 下载次数: 0)

带参数

带参数
5#
发表于 2014-2-26 21:53:05 | 只看该作者
李掌柜 发表于 2014-2-26 20:46
int main()和int main(void)是一样的,
最正式的写法是int main(void)
其中的void是代表空的意思,就是没有 ...

int main()和int main(void)一样是最正式的写法
6#
发表于 2014-2-26 22:22:05 | 只看该作者
rosynirvana 发表于 2014-2-26 21:53
int main()和int main(void)一样是最正式的写法

一样 是一样的,当是还是有区别的
int main()是标准C89及以前的写法
int main(void)是新标准C99的标准写法,
你说这个有木有区别  
比喻~~噢~~!
按达尔文先生的进化论来讲,,你是要想生活在古代社会,没车,没电,没网,
还是现代社会有车,有电,有网....是一个道理~~~
因为你都是可以选择生活的,,

7#
发表于 2014-2-27 00:09:21 | 只看该作者
本帖最后由 rosynirvana 于 2014-2-27 00:10 编辑
李掌柜 发表于 2014-2-26 22:22
一样 是一样的,当是还是有区别的
int main()是标准C89及以前的写法
int main(void)是新标准C99的标准写 ...

首先,我不知道你有没有读过C99标准的文本

1.C99的例子里有int main()的
2.C99对于hosted环境下main的形式规定是 int main(void), int main(int argc, char* argv[]),或其等价形式
对于一个函数的定义, fun() 和 fun(void)等价(对于声明来说不等价),所以int main() {} 是 int main(void) {}的等价形式
所以可以看出,int main()在C99中仍然是最正式的写法

然后, C99不是新标准,新标准是C11。而且,C99不是通行最广的标准,通行最广的标准是C90

最后,把C89和C99一同讨论是概念错误, C89是ANSI C的别称,也就是美国的国家标准。C99是ISO的标准,也就是国际标准。两种标准就算实质相同,也是不同的标准范畴。

P.S. 讨论问题就请集中在问题上,不要扯别的
8#
发表于 2014-2-27 00:43:37 | 只看该作者
话说当年我也是问过这问题
9#
发表于 2014-2-27 01:46:19 | 只看该作者
本帖最后由 李掌柜 于 2014-2-27 01:49 编辑


少年木有看过 标准就不要乱说,
不要告诉我你看不懂这张截图,
C的标准正确写法只能2种,

006.png (82.1 KB, 下载次数: 0)

006.png
10#
发表于 2014-2-27 01:47:29 | 只看该作者
李掌柜 发表于 2014-2-27 01:46
少年木有看过 标准就不要乱说,
不要告诉我你看不懂这张截图,

来,看到最后一行的
or equivalent
了吧?
11#
发表于 2014-2-27 01:52:59 | 只看该作者
然后我说,C99给出的例子里有用int main()的,一处在6.7.5.3

是哪个修正版本号截图里面也有
12#
发表于 2014-2-27 01:55:32 | 只看该作者
rosynirvana 发表于 2014-2-27 01:47
来,看到最后一行的
了吧?

看清楚了~~

9) Thus, int can be replaced by a typedef name defined as int, or the type of argv can be written as
char ** argv, and so on.
13#
发表于 2014-2-27 01:59:20 | 只看该作者
李掌柜 发表于 2014-2-27 01:55
看清楚了~~

9) Thus, int can be replaced by a typedef name defined as int, or the type of argv ...

这一句说的是例如变量名可以变,char* []可以写成等价的char **
后面的
  1. and so on
复制代码

应该看到了吧

这是两个例子,并不是说唯二的等价形式

还有问题请看上面给出的例子
14#
发表于 2014-2-27 02:03:59 | 只看该作者
或许你还要质疑int func(void){}和 int func(){}这俩不同
标准在6.7.5.3,修正版本和之前的一样

第10条和第14条
15#
发表于 2014-2-27 02:11:38 | 只看该作者
rosynirvana 发表于 2014-2-27 01:59
这一句说的是例如变量名可以变,char* []可以写成等价的char **
后面的
应该看到了吧

少年,你要找main格式,而不是一个例子~~山寨的吧~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表