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,取消相应的宏定义,执行不同的指令流程。