background image

    /*一般源程序中的所有程序行都参加编译,但有时希望对其中一部分内容只在满足一定

条件下才进行编译,也就是对一部分内容指定编译的条件。

*/

#if、#elif、 #else、#endif、#ifdef、#ifndef

    /*选择不同的编译范围,产生不同的代码,提供通用性。*/

    /*如对 8051 在 6MHZ 与 12MHZ 下有*/

#ifdef cpu==8051

#define FREQ 6 /*程序段*/

#else

#define FREQ 12/*程序段*/

#endif

    /*这样下面的原程序不用做任何修改便可以使用于两种时钟频率的单片机系统*/

四》其他:

1、#error:捕捉不可预料的编译条件

#if (myv!=0&&myv!=1)/*假定其值必为 0 或 1*/

#error myv must be 1 or 0/*出错时显示*/

#endif

2、#pragma:用于在程序中向编译器传送各种编译控制命令

#pragma 编译命令序列

    /*例:想按如下命令编译 ex.c c51 ex.c debug cod large 可用:*/

#pragma DB CD LA

#pragma disable