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指令而继续向下编译。