作为一个视觉性动物,总觉得自己的代码很丑。于是在网上看来一些比较规范的代码,其中与我学习时最不同的就是“声明和定义全局变量和函数”。其实代码的规范性真的很重要,不但是学习的时候老师强调,知乎上的大大也三令五申。接下来,介绍一种比较经典的声明与定义方式。
首先,尽管一个全局变量或函数和可以有多出“声明”,但“定义”却最多只能允许出现一次。因为对于全局变量,“定义”是真正分配空间并赋初值的声明(除计算机默认赋值)。对于函数,“定义”是提供函数体的声明。
extern int i;
extern int f();
这些是定义;
int i=0;
int f()
{
return 1;
}
而这些是声明。
其中解释一下extern的用法。extern可用来声明。extern为一种储存类型,只对数据声明有意义。对于函数的声明,它可以用作一种格式,表明函数的定义可能在另一个源文件中。但是:
extern int f();
和
int f();
之间没有区别。
最好的安排是在某个相关的.c 文件中定义, 然后在头文件.h 中进行外部声明(extern), 在需要使用的时候, 只要包含对应的头文件即可。定义变量的.c 文件也应该包含该头文件, 以便编译器检查定义和声明的一致性。
网友评论