超级无敌简单入门C问题!!!求教。

netbooting 2013-12-25 02:14:44
1、据说C程序都是从main()函数入口执行,函数可以有一条或多条语句,于是我试着编译了几个程序
(1)

main();

(2)

main(){}

(3)

#include <stdio.h>
main();

(4)

#include <stdio.h>
main(){}


为什么只有(4)可以正常通过编译,执行它显示一个空DOS窗口,(1)(2)(3)极少数编译器不报错,但执行没有任何反应??(4)里{}为什么不能换为;,{}和;不都是空吗??


(2)据说一个C程序中也可以有多个main()函数,请给一个简单的示例,能编译运行。
...全文
789 32 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanren13 2014-01-16
  • 打赏
  • 举报
回复
我倒想问,为什么函数都没有返回类型?
百曉生 2014-01-16
  • 打赏
  • 举报
回复
不可调试,即显示有错误
百曉生 2014-01-16
  • 打赏
  • 举报
回复
引用 1 楼 zhuobattle 的回复:
main(); 这是一个函数声明 main() {} 这才是一个函数实现
1:你用的是那个软件啊,咱就说VC++6.0吧,你编译以后再链接一下,你那个(2)可以通过,是可调试的,(1)(3)通不过链接,当然不可调试
引用 10 楼 netbooting 的回复:
我是在一本C语言书里看到的,它说一个C程序理论上可以有多个main,但必须指定哪一个main为入口[/quote] 2:就目前来说,一个程序有且仅能有一个main()。
纹枰老妖 2014-01-13
  • 打赏
  • 举报
回复
怎么还有人回复这么多的英文?难道程序员的英语都刚刚的、、、
chenlianghx 2014-01-13
  • 打赏
  • 举报
回复
我试第二个行的
emailtome 2014-01-12
  • 打赏
  • 举报
回复
C程序都是从main()函数入口执行 不对 一般情况是从main() 有兴趣 google 手写一PE文件
YunShell 2014-01-09
  • 打赏
  • 举报
回复
很艰难的问题。
六月下的雪 2014-01-07
  • 打赏
  • 举报
回复
先记一记每个程序的应有的代码 #include <stdio.h> #include <stdlib.h> int main(void) {system("pause"); return 0; } 这几行代码不论怎么样都要去背熟悉!才能开始后续的学习!
SmallCoder1992 2014-01-02
  • 打赏
  • 举报
回复
main函数有且只有一个
司马无殇 2014-01-02
  • 打赏
  • 举报
回复
下学期要学,不明觉厉啊
mujiok2003 2013-12-31
  • 打赏
  • 举报
回复
引用 21 楼 xinkexue 的回复:
引用 2 楼 mujiok2003 的回复:
这是哪本书里的?
c++标准2003
可爱的芒果酱 2013-12-30
  • 打赏
  • 举报
回复
引用 2 楼 mujiok2003 的回复:
这是哪本书里的?
richyhuang 2013-12-29
  • 打赏
  • 举报
回复
楼主真是细心啊,
Hey_黑猫 2013-12-28
  • 打赏
  • 举报
回复
1)main函数也是一个函数()的是参数声明 其中可以带有两个形式参数 (int argc, char *argv[])第一个表示执行程序时你传递给他的参数个数,第二个是字符串中的指针数组。{}中的是函数体 函数体是不可少的。 2)一个程序由一个或者多个文件构成,一个文件由一个或者多个函数构成,但是main函数只能有一个。所以一个程序内的main函数可是说是没有限定的,以后程序做大了可以有不同的main函数来实现不同的功能最后拼接起来。
djjlove_2008 2013-12-28
  • 打赏
  • 举报
回复
包含{}为一个整体函数,这题深究起来,真不简单的。
Q蛋黄酱 2013-12-26
  • 打赏
  • 举报
回复
引用 5 楼 xformat 的回复:
以我的理解,这四个全是错的吧?因为main函数前没有返回类型。 第四个通过编译应该是兼容以前的编译器,默认是返回int类型吧? 个人觉得第四个能通过编译的话,第二个没有理由通不过……求大神指教。
第二个 缺少一个头文件
「已注销」 2013-12-26
  • 打赏
  • 举报
回复
引用 16 楼 u012961566 的回复:
[quote=引用 5 楼 xformat 的回复:] 以我的理解,这四个全是错的吧?因为main函数前没有返回类型。 第四个通过编译应该是兼容以前的编译器,默认是返回int类型吧? 个人觉得第四个能通过编译的话,第二个没有理由通不过……求大神指教。
第二个 缺少一个头文件[/quote]
int main(){}
事实上,我只是给第二段代码加上返回类型,就通过编译了。头文件并非必须,因为根本用不到。
  • 打赏
  • 举报
回复
这题不叫超级简单。。。。叫。。。答全有点难度。。。
lm_whales 2013-12-25
  • 打赏
  • 举报
回复
main 在库代码内部,调用时,只有一种形式。 就是 int main(int argc,char *argv[]); //MBCS,标准形式 int wmain(int argc,wchar_t *argv[]);//UNICODE 变体 某些编译器,可能会扩展为 int main(int argc,char *argv[],char* env[]); //MBCS 标准形式 int wmain(int argc,wchar_t *argv[],wchar_t* env[]);//UNICODE 变体 由于这个函数是C函数,并且遵守C调用约定; int main(int argc); 和int main(int argc,char *argv[]); 所以两种函数,这两种函数定义都可以 这样调用 int __argc ; char **__argv; ..... exit(main(__argc,__argv)); 都可以。 虽然,现在的编译器,增强了类型检查,你自己这样调用,可能不行。 但是,编译器,这么处理,一点问题都没有。
lm_whales 2013-12-25
  • 打赏
  • 举报
回复
1)main,可以有多种形式,不过,只能任选一种 。 2)全局的main不可重载; 3)除非,在类,或者名空间内部,重载 main函数。
加载更多回复(12)

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧