A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 2的狠正经 中级黑马   /  2014-3-23 19:18  /  1335 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在mian() 中调用函数需不需要在main()中先声明这个函数?
我发现有的不声明也能调用, 这是为什么?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

5 个回复

倒序浏览
首先,要先明确系统编译代码是从上往下依次翻译的。如果不声明,那么你定义的函数要放在你的main函数之前,如果你放在了main函数之后,而在之前没有声明的话,那么在你的main函数调用时由于你前面没有这个函数的编译,可能会出错的!所以如果不想声明函数的话,就把定义的函数全部放到main之前。但一般写程序,便于快速找到主函数还是把定义函数放后面,前面声明的比较好!如果是小 程序就看自己的喜好了!!!

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报 1 0
你是不是写在main()前面了~:lol
回复 使用道具 举报
如果函数写在main()函数之后,那么在调用的时候必须先声明,如果写在main()函数之前则不需要,而且好像还和编译器有关吧,具体的不是很明白。
回复 使用道具 举报
c程序是从上往下看,程序(你)往下走的时候看到了----一张群主照片
继续往下走,又看到很多其他人的照片
如果在路上看到群主,自然会打招呼说个话,版主于是好心告诉你:啊,你入学考试资格申请通过啦。
如果没有事先看到照片,就不会和他打招呼,更不知道,申请是不是过了。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
c语言编译器对于源代码的编译是顺序编译的,当你的任意一个函数中调用某个函数的时候,这个函数的原型必须在调用之前声明,否则就会出现编译错误。
比如:
void a(int b)
{
  printf("%d\n", b);
}

void main( )
{
  a(10);
}
就没有问题。如果把a函数放在main函数后就要先声明void a(int b);还有声明不是在main函数中声明
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马