×
单片机 > 单片机程序设计 > 详情

PIC单片机CCS之C语言(#IFDEF,#ENDIF的用法)

发布时间:2020-05-16 发布时间:
|
#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在前面已介绍过了



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址