zoukankan      html  css  js  c++  java
  • extern学习记录

    1,在一个XX.c文中定义,在XX.h中声明需要加extern吗?

    答:如果XX.c文件中#include XX.h了,那么就不用加extern了。

    2,常常见extern放在函数的前面成为函数声明的一部分,那么,C语言的关键字extern在函数的声明中起什么作用?
      答案与分析:
      如果函数的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。即下述两个函数声明没有明显的区别:
    extern int f(); 和int f();
      当然,这样的用处还是有的,就是在程序中取代include “*.h”来声明函数,在一些复杂的项目中,我比较习惯在所有的函数声明前添加extern修饰。

    3,纯粹用 C 语言语法的角度,你当然可以在 .h 中放任何东西,因为 #include 完全等价 于把 .h 文件复制 到 .c 中

    .h 中应该都是一些宏定义和变量、函数声明,告诉别人你的程序“能干什么、该怎么用”

    .c 中是所有变量和函数的定义,告诉计算机你的程序“该怎么实现”

    如果一个 .h 被多个 .c 包含,而且 .h 中有对象(变量或函数)的定义,就会发生重复定义的错误了,声明可以无穷多次,定义只能一次。

    解决:为了防止这种错误发生,在.h文件中加

    #ifndef 

    #define_h

    #endif

    例:

    #ifndef __driver_cfg_h__
    #define __driver_cfg_h__

    #endif

     

    路漫漫其修远兮,吾将上下而求索
  • 相关阅读:
    2017年3月笔记
    2017年2月笔记
    2017年1月笔记
    2016年12月笔记
    2016年11月笔记
    2016年10月笔
    2016年9月笔记
    2016年8月笔记
    2016年7月笔记
    2016年6月笔记
  • 原文地址:https://www.cnblogs.com/fanhuanliugang/p/7418405.html
Copyright © 2011-2022 走看看