#IFDEF
#IFNDEF
#ELSE
#ELIF
#ENDIF
语法: #ifdef id
cide
#elif
code
#else
code
#endif
和
#ifndef id
code
#elif
code
#else
code
#endif
id是一个预处理器标识符,code是一段有用的C源程序.
意图:这个指示的执行同#IF类似.在#IF里,假如指定的ID(用#DEFINE 创立的ID)对预处理器来说是已知的, 预处理器完全能够检查到它;而在#IFDEF里,假如ID被界说了,则预处理器能够检查到它,若没有界说ID,则#IFNDEF能够检查到它.
比如:
#define debug //界说debug
…
#ifdef debug //由于debug在前面已界说,所以可执行printf
printf(“debug poit a”);
#endif
比如文件:ex_sqw.c在前面已介绍过了
#INCLUDE
语法: #include
或
#include “filename”
filename是一个有用的PC文件名.它包括规范的驱动和途径信息.带有”.encrypted”扩展名的是一个有用的PC文件名.规范的编译器#include directive会承受带有这种扩展名的文件,将它们译成可读的.这答应包括的文件被分配,但不释放出其源程序代码.
意图:来自指定文件的的字符用作修改的指针.假如没有将完好的途径指定给编译器, 编译器将运用指定的目录的列表为project搜寻文件.若文件名在“…”里,那么主源程序文件地点的目录首要被搜寻.若文件名在<…>里, 那么主源程序文件地点的目录最终被搜寻.
比如:#include <16c54.h>
#include
比如文件:ex_sqw.c在前面已介绍过了
#INT_GLOBAL
语法: #int_global
意图:这种指示将引起下面的函数替代编译器发生中止. 函数一般不要求,而用来发生正告.当运用#int_global时,编译器不发生发动代码或铲除代码,也不存入寄存器.
比如:#int_global
isr(){ //将被定位在地址0x0004处
#asm
bsf isr_flug
retfie
#endasm
}
比如文件:ex_glint.c在前面已介绍过了