美文网首页技术总结
技术总结02_声明与定义

技术总结02_声明与定义

作者: 不可爱不温柔的野猪女孩 | 来源:发表于2018-01-31 10:38 被阅读0次

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

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

    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_声明与定义

        本文链接:https://www.haomeiwen.com/subject/nmlkzxtx.html