define.h文件内容如下:
#ifndef CH

#define CH_1
#define CH_2

#endif

 define.c文件内容如下:

#include<stdio.h>
#include"define.h"

int main()
{
    int chs = 1;

    chs = GetSysChannelID();   /* 获取该CPU的通道标识 */

    if(1 == chs)
    {
        #undef CH_2
    }

  else

    {

         #undef CH_1

     }

    #ifdef CH_1
        printf("CPU_1 Processing...\n");
    #else
        printf("CPU_2 Processing...\n");
    #endif

    return 0;
}

 由于这段代码可能跑在一个系统的两个CPU上面,那么根据系统中两个CPU的ID的不同,程序需要做不同的处理。在这个例子中,通过使用#define指令达到上述的效果;由于两个CPU上面跑的指令是相同的,那么在头文件中都定义CPU1与CPU2的信息,在程序的主处理流程中,通过获取当前程序是运行在CPU1还是CPU2,取消相应的宏定义,执行不同的指令流程。

posted on 2010-12-02 11:02  greatIDeas  阅读(1142)  评论(0)    收藏  举报