• 预处理的几个问题


    一:解决块注释/**/不能嵌套的问题:

        我们知道行注释//可以多层嵌套和逐层取消,而块注释/**/不能嵌套或不能与//混用,否则有可能出现编译错误。通常我们在程序调试时如果要取消一大段代码,可以用条件编译#if 0  #endif实现

    二:避免头文件的重复包含:

         假如a.h中自定义了一个结构体,在b.h和c.h中都又自定义了一个结构体(其成员有a.h的结构体内容,所以b.h和c.h都包含了a.h),而在.c中又用到了b.h和c.h的结构体(所以包含了b.h和c.h),此时因为多次包含了a.h所以编译器会报错,此时只要在a.h中使用#ifndef _debug__  #define _debug__ ....#endif.

    三 宏的嵌套包含:

     #define AA 1

     #define BB 1

    void main(void)

    {

        #ifdef AA

            ……

              #if BB   //嵌套的宏,这里不能再用#ifdef,

                  ……   //否则BB是0也会执行这些代码,

              #else   //而这#else不会被执行

                  ……

              #endif

        #else

            ……

        #endif

    }

    或者这样也行

    #define AA   //使用宏定义做控制开关,此时#ifdef可嵌套

    #define BB   //使用宏定义做控制开关,要关闭时,直接注释掉

    int main()

    {

        #ifdef AA

            ……

            #ifdef BB   //嵌套的宏,如果定义了,则执行

                ……       

            #else  

                ……

            #endif

        #else

            ……

        #endif

    }

  • 相关阅读:
    使用bink播放视频
    Vertex Shader And Pixel Shader
    Points Versus Pixels in Cocos2D
    ogre_机器人在10个位置循环走动
    简单播放声音PlaySound
    Vertex Shader 入门代码
    加载地形的类
    Animation Cache in Cocos2diphone v2.0.0
    [转]Rad Video Tools使用手册
    CSound类源文件
  • 原文地址:https://www.cnblogs.com/jieruishu/p/6846895.html
Copyright © 2020-2023  润新知