PIC单片机CCS之C语言(#IFDEF,#ENDIF的用法)
#IFNDEF
本文引用地址://m.amcfsurvey.com/article/201611/315396.htm#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在前面已介绍过了
评论