C++预处理命令详解

C++预处理命令详解

ID:42785408

大小:42.50 KB

页数:5页

时间:2019-09-22

C++预处理命令详解_第1页
C++预处理命令详解_第2页
C++预处理命令详解_第3页
C++预处理命令详解_第4页
C++预处理命令详解_第5页
资源描述:

《C++预处理命令详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、预处理命令#,###和##操作符是和#define宏使用的.使用#使在#后的首个参数返回为一个带引号的字符串.例如,命令#defineto_string(s)#s将会使编译器把以下命令cout<

2、准输出处显示'10'.#define语法:#definemacro-namereplacement-string#define命令用于把指定的字符串替换文件中的宏名称.也就是说,#define使编译器把文件中每一个macro-name替换为replacement-string.替换的字符串结束于行末.这里是一个经典的#define应用(至少是在C中):#defineTRUE1#defineFALSE0...intdone=0;while(done!=TRUE){...}#define命令的另外一个功能就是替换参数,使它假冒创建函数一样使用.如下的代码:#

3、defineabsolute_value(x)(((x)<0)?-(x):(x))...intx=-1;while(absolute_value(x)){...}当使用复杂的宏时,最好使用额外的圆括号.注意在以上的例子中,变量"x"总是出现在它自己的括号中.这样,它就可以在和0比较,或变成负值(乘以-1)前计算值.同样的,整个宏也被括号围绕,以防止和其它代码混淆.如果你不注意的话,你可能会被编译器曲解你的代码.#error语法:#errormessage#error命令可以简单的使编译器在发生错误时停止.当遇到一个#error时,编译器会自动输出行号而无

4、论message的内容.本命令大多是用于调试.#if,#ifdef,#ifndef,#else,#elif,#endif这些命令让编译器进行简单的逻辑控制.当一个文件被编译时,你可以使用这些命令使某些行保留或者是去处.#ifexpression如果表达式(expression)的值是"真"(true),那么紧随该命令的代码将会被编译.#ifdefmacro如果"macro"已经在一个#define声明中定义了,那么紧随该命令的代码将会被编译.#ifndefmacro如果"macro"未在一个#define声明中定义,那么紧随命令的代码将会被编译.一些小边

5、注:命令#elif是"elseif"的一种缩写,并且他可以想你所意愿的一样工作.你也可以在一个#if后插入一个"defined"或者"!defined"以获得更多的功能.这里是一部分例子:#ifdefDEBUGcout<<"Thisisthetestversion,i="<#include"file

6、name"本命令包含一个文件并在当前位置插入.两种语法的主要不同之处是在于,如果filename括在尖括号中,那么编译器不知道如何搜索它.如果它括在引号中,那么编译器可以简单的搜索到文件.两种搜索的方式是由编译器决定的,一般尖括号意味着在标准库目录中搜索,引号就表示在当前目录中搜索.Thespiffynew整洁的新C++#include目录不需要直接映射到filenames,至少对于标准库是这样.这就是你有时能够成功编译以下命令的原因#include#line语法:#lineline_number"filename"#line命令是用

7、于更改__LINE__和__FILE__变量的值.文件名是可选的.__LINE__和__FILE__变量描述被读取的当前文件和行.命令#line10"main.cpp"更改行号为10,当前文件改为"main.cpp".#pragma#pragma命令可以让编程者让编译器执行某些事.因为#pragma命令的执行很特殊,不同的编译器使用有所不同.一个选项可以跟踪程序的执行.#undef#undef命令取消一个先前已定义的宏变量,譬如一个用#define定义的变量.预定义变量语法:__LINE____FILE____DATE____TIME___cpluspl

8、us__STDC__下列参数在不同的编译器可能会有所不同,但是一般是可用的:·_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。