重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
当然可以,并且这样做是非常常见的做法。
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站建设、青田网络推广、小程序开发、青田网络营销、青田企业策划、青田品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供青田建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
在稍大型一点的程序中,还可以把这些声明放到单独的.h头文件中,然后在需要调用这些函数的.c源文件中#include "xxxx.h"
编译时,编译器会把你引用的头文件内容直接拷贝到该源文件中,就相当于你在源文件开头写了一堆声明。
楼主记住这么一个原则就行了。
函数要先声明后使用。即函数调用之前一定要知道该函数的类型。
如果fun1在main函数之前已经实现,那么main函数调用fun1的时候就已经知道fun1函数的类型了,就不需要声明了。
如果fun1在main函数之后实现,那么调用之前一定要先声明。
在C语言中,编译一个C语言源文件是从第一行开始扫描到最后的,你调用一个函数,之前必须定义或申明过这个函数。
这样是合法的:
void f(){
}
int main(){
f();
}
这样也是合法的
void f();
int main(){
f();
}
void f(){
}
这样就是非法的
int main(){
f();
}
void f(){
}
所以函数调用不一定需要先声明,当函数定义调用函数之后需才要先申明。
main函数放在最前面,结构条例比较清晰,读起来方便,先main,然后main调用的其他函数。这样的话就需要在main前声明被调函数。代价就是如果被调函数发生变化,譬如函数名称、参数、返回值类型等发生变化,那么声明的地方也要同步改变。
那是c语言本身的语法规定而已,所以编译器的表现符合语言的行为要求,要先定义后使用,就是这么回事。并不是说一定绝对要提前声明,然后使用,很多语言就不要先声明,这也是语言本身的语法规定。当然,如果不先声明后使用的话,它可能就不是c语言,而是vb了。
如果硬要说什么理由的话,因为c语言是一种强类型语言,他有各种类型,包括不同的数据类型和函数类型(一种函数声明就可以理解为一种函数类型),它们使用的内存大小不一样。这样在编译的时候为不同的类型分配适当的内存和相关限制,这样有利于内存的利用和程序的效率。
并未要求一次性将所有的变量声明或者定义,只要求在使用某个变量之前先定义。变量的定义风格利弊如下:
1、变量在函数开头定义:便于修改。
2、变量就近定义:便于阅读。
3、变量在块语句的开头定义:有的临时变量放在语句块开头,可以不用在函数开头定义,并且在使用完毕后释放空间,可以这么做,但不要无故添加花括号来提高代码的结构。
一般的,为了要达到最大的兼容跨平台性,还是放在函数开头定义。因为C89规定,在任何执行语句之前,在块的开头声明所有局部变量。
如以下代码:
会报错信息:error C2065: 'salary' : undeclared identifier。
在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。
扩展资料:
c语言变量定义和保存格式的关系:
1、源文件保存为.c格式的话变量只能定义在最前,若保存为.cpp格式的话,变量定义较为灵活,不用在最前。
2、在C语言里,变量只能在函数的开头处声明和定义。在函数里要用到的变量必须要在开头处声明定义。声明定义的前面不能有任何其他非声明定义的语句。全局变量在函数体的外部声明定义。
而C++里(.CPP文件是按C++标准编译的),只要在用到变量前对该变量进行声明定义就行了,位置不做特别要求。而C语言的就定了在一个模块里(函数、循环体等)先声明一切所需变量后才能进行相关操作的规定。
参考资料:
百度百科--C语言