zoukankan      html  css  js  c++  java
  • 一个小程序猿思考之路-头文件中#ifndef/#define/#endif作用和用法

    编写自定义头文件时,原来就是随意的编写一些内容,但是很少去想过头文件的格式;

    突然一天,发现自己的头文件里有这么几个小东西 ;

    #ifndef DAO_H
    #define DAO_H

    ...

    #endif

    上面这个有什么详细的意义?

    恍惚的记着是为了避免头文件多次调用,造成多次编译,引起重定义的错误;

    然后找了下

    #ifndef _TEST_H
    #define _TEST_H//一般是文件名的大写
    头文件结尾写上一行:#endif

    这样一个工程文件里同时包含两个test.h时,就不会出现重定义的错误了。

     

    分析:当第一次包含test.h时,由于没有定义_TEST_H,条件为真,这样就会包含(执行)#ifndef _TEST_H和#endif之间的代码,当第二次包含test.h时前面一次已经定义了_TEST_H,条件为假,#ifndef _TEST_H和#endif之间的代码也就不会再次被包含,这样就避免了重定义了。主要用于防止重复定义宏和重复包含头文件

  • 相关阅读:
    GSON -JSON 反序列化-多节点名称支持
    Jedis 分片原理
    闭锁-CountDownLatch
    XML序列化及反序列化
    用GIT操作SVN
    报表worker-CPU使用率过高原因排查
    二.PlantUML 之活动图
    一.PlantUML 与 IDEA 集成
    ArrayList
    VI常用命令
  • 原文地址:https://www.cnblogs.com/aiyq195/p/6391259.html
Copyright © 2011-2022 走看看