main()与main(void)有什么区别?

xiaoshitou 2002-08-31 09:53:44
这两种形式都编译都可以通过,但具体有什么不同呢?
...全文
234 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
programmer200x 2002-09-01
  • 打赏
  • 举报
回复
同意楼上的说法。
blh 2002-09-01
  • 打赏
  • 举报
回复
理论上,如果函数不需要参数应该指明void,但是默认情况下不写void表示无参数
root2236 2002-09-01
  • 打赏
  • 举报
回复
no
alexxing 2002-08-31
  • 打赏
  • 举报
回复
C++ 将 f() 视为 f(void),f() == f(void)
C 将 f() 视为 f(...),调用者可以任意传递参数,f() != f(void)

但 main() 是一个特殊的函数,它是由系统调用的,系统始终假设 main 的原型是:

int main(int argc, char * argv[], char * env[]);

不管你的 main 实际原型是什么,系统都是这样调用:

main(_C0argc,_tC0argv,_tC0environ)

所以 main() 和 main(void) 的实际效果完全相同,只是在 C 语言中有理论上的区别。
jieshen 2002-08-31
  • 打赏
  • 举报
回复
大家都说了
xietnt 2002-08-31
  • 打赏
  • 举报
回复
运行时没有区别
只是main(void)是写明了接受参数
凌波微搏 2002-08-31
  • 打赏
  • 举报
回复
没有区别。
dot99 2002-08-31
  • 打赏
  • 举报
回复
一个显式的说明函数不接受参数~
Aofa_lee 2002-08-31
  • 打赏
  • 举报
回复
没有区别.
NickTang 2002-08-31
  • 打赏
  • 举报
回复
没有区别
sjd163 2002-08-31
  • 打赏
  • 举报
回复
没有区别
liubingqian 2002-08-31
  • 打赏
  • 举报
回复
main(void)表示程序不接受命令行参数

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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