zoukankan      html  css  js  c++  java
  • <C和指针---读书笔记16>

    条件编译

    符合条件,才进行编译。不符合条件的部分,直接忽略,根本不对其进行编译,能大大的提高效率。

    主要有两种方式 :    (1)  #if expressition   看表达式结果。

                                      (2)   #ifdef  xxx         看是否有过define xxx行为。

    (1) #if  expression  首先对这个表达式求值,若为真,则进行接着往下走。

    #if expression1
       .....
    #elif  expression2
       .....
    #else
       ....
    #endif
    

      

    (2) #ifdef  xxx : 首先检查之前是否有过 define xxx的操作, 不关心把xxx define成什么,即使define成空,也无所谓。

    文件包含

    #include <标准库>    或者   #include “自定义库”  

    对于自定义的库,即my.h文件,需要特别注意一个地方。 

     my1.h 里面嵌套 include了 my_printf.h文件。my_printf.h又include了 my1.h。这时就造成了死循环了。

    或者顶层.h  #include了若干次my_printf.h文件,这时就会有风险。

    为了避免这种风险: 我们统一要求 .h文件写法:

    #ifndef _FILE_H_NAME_
      #define    _FILE_H_NAME_  1
         /*--------------------------*/
                  声明各种东西
         /*--------------------------*/
    #endif
    

      在预编译阶段,第一次#include该文件时,因为从未有过 #define _FILE_H_NAME_行为,所以此时会进行#define操作。

    假如有第二次声明,因为之前已经#define,就直接#endif结束了。就从根源上避免了 多重引用的问题。

     

  • 相关阅读:
    oracle 触发器的编写
    单例类与常见双下方法
    实现高效率的冒泡排序
    面向对象基础(五)
    面向对象基础(四)
    面向对象基础(三)
    面向对象基础(二)
    面向对象(基础)
    四指针法
    因数法
  • 原文地址:https://www.cnblogs.com/mokang0421/p/7529213.html
Copyright © 2011-2022 走看看