技术总结02_声明与定义

作为一个视觉性动物,总觉得自己的代码很丑。于是在网上看来一些比较规范的代码,其中与我学习时最不同的就是“声明和定义全局变量和函数”。其实代码的规范性真的很重要,不但是学习的时候老师强调,知乎上的大大也三令五申。接下来,介绍一种比较经典的声明与定义方式。

首先,尽管一个全局变量或函数和可以有多出“声明”,但“定义”却最多只能允许出现一次。因为对于全局变量,“定义”是真正分配空间并赋初值的声明(除计算机默认赋值)。对于函数,“定义”是提供函数体的声明。

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 文件也应该包含该头文件, 以便编译器检查定义和声明的一致性。

你可能感兴趣的:(技术总结02_声明与定义)