• #ifndef 、 #define 、#endif使用解释


    在C语言程序代码里,看到了这么一段代码:

    #ifndef __WIFI_CONNECT_H_
    #define __WIFI_CONNECT_H_
    
    int WifiConnect(const char *ssid,const char *psk);
    
    #endif  /*__WIFI_CONNECT_H_ */

    1、作用:防止该头文件被重复引用;

    概念:“被重复引用”是指一个头文件在同一个cpp文件中被include了多次,这种错误常常是由于include嵌套造成的。

          比如:存在a.h文件#include "c.h"而此时b.cpp文件导入了#include        "a.h" 和#include "c.h"此时就会造成c.h重复引用。

    2、造成后果:有些头文件重复引用只是增加了编译工作的工作量,不会引起太大的问题,仅仅是编译效率低一些;

    3、使用格式:

              #ifndef A_H意思是"if not define a.h"  如果不存在a.h

             接着的语句应该#define A_H  就引入a.h

             最后一句应该写#endif   否则不需要引入

    #ifndef __WIFI_CONNECT_H_
    #define __WIFI_CONNECT_H_
    
    int WifiConnect(const char *ssid,const char *psk);
    
    #endif  /*__WIFI_CONNECT_H_ */

    二、枚举、结构体、寄存器宏定义 使用

    #ifndef __E53_IA1_H__
    #define __E53_IA1_H__
    
    /***************************************************************
    * 名        称: GasStatus_ENUM
    * 说    明:枚举状态结构体
    ***************************************************************/
    typedef enum
    {
        OFF = 0,
        ON
    } E53_IA1_Status_ENUM;
    
    /* E53_IA1传感器数据类型定义 ------------------------------------------------------------*/
    typedef struct
    {
        float    Lux;             //光照强度
        float    Humidity;        //湿度
        float    Temperature;     //温度
    } E53_IA1_Data_TypeDef;
    
    
    
    /* 寄存器宏定义  register--------------------------------------------------------------------*/
    #define SHT30_Addr 0x44                //十进制
    #define BH1750_Addr 0x23
    心有猛虎,细嗅蔷薇
  • 相关阅读:
    使用ConfigFilter
    读取特定文件,替换第一行内容
    sqlserver,oracle,mysql等的driver驱动,url怎么写
    Excel 数字处理
    ResultMap详解
    正则表达式
    Tomasulo algorithm
    scoreboarding
    data hazard in CPU pipeline
    差分绕线间距对阻抗的影响
  • 原文地址:https://www.cnblogs.com/1314520xh/p/15087889.html
Copyright © 2020-2023  润新知