8.5.3 #pragma命令
pragma命令用于向编译程序传送各种C51编译器的控制指令。根据#pragma指令后面的字符串,编译系统将按照特定的方式来编译C51的字符串和函数。其使用的一般形式如下。
pragma字符串
其中,#pragma指令后面的字符串,可以大写,也可以小写。#pragma指令示例如下。
pragma sfr//在C51中使用SFR
pragma access//在C51中使用绝对地址
pragma asm//在C51中插入汇编语句
使用#pragma命令的程序示例如下。
include<REG51.h>//头文件
void main()//主函数
{
while(1)
{
P1=0x0F;//P1端口输出
pragma asm//嵌入汇编语句
NOP
SETB P1.6//置P1.6为高电平
SETB P1.7//置P1.7为高电平
NOP
pragma endasm//结束汇编语句嵌入
}
}
该程序可以在KeilµVision3集成开发环境中运行。在本例中,首先在P1端口输出0x0F,然后通过#pragma命令在程序中嵌入汇编语句,用于置P1.6和P1.7为高电平。
在程序中使用#pragma命令,应注意以下几点。
❑同一控制指令在同一个源文件中不能使用两次以上。
❑C51编译器的控制指令只能使用#pragma命令在源文件的开始设定。
❑如果编译系统不支持#pragma指令,那么将忽略#pragma指令而继续向下编译。