C语言声明

  怎样定义和声明全局变量和函数最好。
 
   首先,尽管一个全局变量或函数可以有多处声明但是定义却最多只允许出现一次,对于全局变量,定义是真正分配空间并赋初值的声明,对于函数,定义是提供函数体的声明。

例如:这些是声明:
 extern int i;
 extern int f();
而这些是定义:
int i=1;
int f()
{
   return 1;
}
(事实上,在函数的声明中,关键字extern是可选的)

    当希望在多个源文件共享变量或函数时,需要确保定义和声明的一致性。最好的安排是在某个相关的.c文件中定义。然后在.h文件中进行外部声明,在需要使用的时候,只需要包含对应的头文件即可。定义变量的.c文件也应该包含该头文件,以便编译器检查定义和声明的一致性。

 

函数只定义了一次,调用了一次,但是编译器提示非法重声明?

在作用域内没有声明就调用(可能是第一次调用在函数的定义之前)的函数被认为声明为:
extern int f();
即未声明的函数被认为返回int型且参数个数未知(其参数必须数量固定,且不能有'窄'类型)如果之后函数的定义不同,则编译器就会警告类型不符。返回非int型,接受任何“窄”类型参数或可变参数的函数都必须在调用之前声明。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值