我原来只用过最简单的宏定义,
#define PI   3.14 之类的
现在看到很多#ifndef CXX_MYLOG_H
#   include "MYLOG.h"
#endif     #if defined(PROGRAM_FOR_PC)
Program_Env m_eOpeEnv = ENV_PC;
#else
Program_Env m_eOpeEnv = ENV_TAR;
#endif这种宏定义怎么解释啊,程序运行起来执行顺序又是怎样的呢,请高手指点。另外有没有关于宏定义比较全的资料啊,我想系统地看看,谢谢各位。

解决方案 »

  1.   

    #ifndef CXX_MYLOG_H
    #   include "MYLOG.h"//假如没有定义CXX_MYLOG_H宏,则包含MYLOG.h
    #endif     #if defined(PROGRAM_FOR_PC) //假如定义了PROGRAM_FOR_PC宏,则
                                //m_eOpeEnv= ENV_PC,否则 m_eOpeEnv= ENV_TAR
    Program_Env m_eOpeEnv = ENV_PC;
    #else
    Program_Env m_eOpeEnv = ENV_TAR;
    #endif
      

  2.   

    VC中预处理指令与宏定义的妙用
    http://www.zdnet.com.cn/developer/code/story/0,2000081534,39037524,00.htm
      

  3.   

    当一个if else 语句一样的分析使用
    http://dust.51.net/forum/index.php?showtopic=22
      

  4.   

    #ifndef CXX_MYLOG_H
    #   include "MYLOG.h"
    #endif这个防止重复包含mylog.h
    #if defined(PROGRAM_FOR_PC)
    Program_Env m_eOpeEnv = ENV_PC;
    #else
    Program_Env m_eOpeEnv = ENV_TAR;
    #endif这个表示不同的情况,Program_Env等于不同的值
      

  5.   

    恩,这个我从字面意思上也看出来了,
    #ifndef CXX_MYLOG_H
    #   include "MYLOG.h"//假如没有定义CXX_MYLOG_H宏,则包含MYLOG.h
    #endif 
    //那么CXX_MYLOG_H,PROGRAM_FOR_PC 是不是要在哪里define过了
    *if defined语句才成立啊?#if defined(PROGRAM_FOR_PC)
    Program_Env m_eOpeEnv  = ENV_PC; //比如我想执行到这句,
    //要先define PROGRAM_FOR_PC么,怎么定义?