您的位置 首页 知识

C51编译器中的预处理器指令及运用解析

C51编译器中的预处理器指令及使用解析-line 指定一个行号和一个可选的文件名,这个指令用于在错误信息中定位错误的位置。Specifies a line number together with an optional filename. These specifications are used in error messages to identify the error position.

Cx51编译器中的预处理器处理源程序文件中的指令。Cx51支撑一切的ANSI C指令。

DirecTIves指令

预处理器指令前面不能有空格,而且有必要加前缀‘#’如:

#pragma

#include

#define DEBUG 1

下面列出预处理器指信令和简略描绘

指令 描绘

Define 界说一个预处理器宏或常量

elif 假如前面的if, ifdef, ifndef或elif分支都不建立的话,初始化if条件的一个分支

else 假如前面的if, ifdef或 ifndef分支都不建立的话,初始化if条件的一个分支

endif 完毕一个if, ifdef, ifndef, elif, 或 else 块

error 输出用户界说的一个过错信息。这个指令运用编译器宣布一个特定的过错信息

ifdef 为条件编译求表达式的值。要被核算的参数便是一个definiTIon 界说的姓名

ifndef 与ifdef相同,仅仅假如这个姓名没有被界说时运算成果为真

if 为条件编译求表达式的值

include 从外部文件中读取源程序文本。

line 指定一个行号和一个可选的文件名,这个指令用于在过错信息中定位过错的方位。Specifies a line number together with an opTIonal filename. These specificaTIons are used in error messages to identify the error position.

pragma 答应你运用能够在C51命令行上运用的控制指令。Allows you to specify control directives that may be included on the C51 command line. Pragmas may contain the same control directives that are specified on the command line.

undef 查看一个宏或常量是否现已界说

Stringize Operator(#)

字符化操作符#

假如操作符出现在宏的参数的前面,参数库就会做为字符串传递到宏里。如

#define stringer(x) printf (#x “\n”)

stringer (text)

预处理器处理的成果为:

printf (“text\n”)

Token-pasting operator(##)

这个操作符在宏界说中连接两个参数。它答应两个分隔的标号在宏界说中合并为一个标号

假如在宏定中一个宏参数姓名紧跟着或紧跟着这操作符,宏参数和这个操作符被参数传递的值替代。邻接着操作符的文本不是宏参数称号的宏是不受影响的。如:

#define paster(n) printf (“token” #n “ = %d”, token##n)

paster (9);

预处理器处理的成果为:

printf (“token9 = %d”, token9);

Predefined Macro Constants预界说宏常量

常量 描绘

_ _C51_ _ C51编译器的版别Version number of the Cx51 compiler (for example, 610 for version 6.10)。

_ _DATE_ _ 编译开端的日期Date when the compilation was started.

_ _FILE_ _ 被编译文件的姓名Name of the file being compiled.

_ _LINE_ _ 被编译文件当时的行号Current line number in the file being compiled.

_ _MODEL_ _ 挑选的存储器形式Memory model selected (0 for small, 1 for compact, 2 for large)。

_ _TIME_ _ 编译开端的时刻Time when the compilation was started.__STDC_ _ 界说为1时,表明彻底恪守ANSI C规范

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/347004.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部