作为一个初学CC2530芯片的菜鸟,看到很多实验例程中都有一个从未见过的语法——#pragma,网上查阅了下,顺便做下小小的总结……
(英语学的不怎么样,开始把它看成了#program故百思不得其解,查后才知道错的有多离谱 pragma [p’ræɡmə] n. 编译指示;杂注。)
#Pragma 指令是一个预处理指令,作用是设定编译器的状态或者是指示编译器完成一些特定的动作,简言之,就是告诉编译器该干嘛怎么干的。主要是为了兼容不同编译器,让程序代码在不同环境下完成相同工作而设的。
一般格式为: #pragma Para。其中Para 为参数。
(参数基本是规定好的几个有特定功能的单词)
常用参数:
- #pragma message(“消息文本”)//当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。>(主要目的,给使用者一些提示信息,类似于注释)
- #pragma code_seg( [“section-name”[,”section-class”] ] )//设置程序中函数代码存放的代码段,当我们开发驱动程序的时候就会使用到它。
- #pragma once//指明下面的代码只编译一次,类似于c语言中的#ifndef,#define,#endif。
- #pragma hdrstop//表示预编译头文件到此为止,后面的头文件不进行预编译。(防止所有头文件全部编译占用过大磁盘空间),可以指定优先级按照优先级顺序编译。
- #pragma warning( disable : 4507 34; once : 4385; error : 164 )// 不显示4507和34号警告信息, 4385号警告信息仅报告一次,把164号警告信息作为一个错误。
- #pragma comment(…)//该指令将一个注释记录放入一个对象文件或可执行文件中。
- #pragma data_seg(“共享名“)…共享数据…#pragma data_seg()//一般用于DLL中定义一个共享的有名字的数据段,这个数据段中的全局变量可以被多个进程共享。