C++和C语言中编译预处理大全#line#error#pragma#ifdef#ifndef#undef#endif#等等的学习总结.doc

C++和C语言中编译预处理大全#line#error#pragma#ifdef#ifndef#undef#endif#等等的学习总结.doc

ID:57207311

大小:38.00 KB

页数:14页

时间:2020-08-06

C++和C语言中编译预处理大全#line#error#pragma#ifdef#ifndef#undef#endif#等等的学习总结.doc_第1页
C++和C语言中编译预处理大全#line#error#pragma#ifdef#ifndef#undef#endif#等等的学习总结.doc_第2页
C++和C语言中编译预处理大全#line#error#pragma#ifdef#ifndef#undef#endif#等等的学习总结.doc_第3页
C++和C语言中编译预处理大全#line#error#pragma#ifdef#ifndef#undef#endif#等等的学习总结.doc_第4页
C++和C语言中编译预处理大全#line#error#pragma#ifdef#ifndef#undef#endif#等等的学习总结.doc_第5页
资源描述:

《C++和C语言中编译预处理大全#line#error#pragma#ifdef#ifndef#undef#endif#等等的学习总结.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言与C++中中编译预处理的学习记录:首先三种形式的命令:宏定义,文件包含,条件编译命令。1、宏定义主要是:#define,#undef如下:#definePI3./*不带参数的宏定义*/#defineMax(a,b)a>b?a:b/*带参数的宏定义*/说明:宏定义在C语言与C++语言中是相通的。下面举例说明定义宏FAILED用于检测数据的正确性。①#define的应用:#defineFAILED(Status)((Status)<0)#include"stdio.h"voidmain(){intd;printf("Pleaseinputaintege

2、rnumber(n>0)");do{scanf("%d",&d);}while(FAILED(d));}其中while(FAILED(d))在编译之前被无条件替换为while(d<0)。宏定义和调用在形式与函数比较相似,但是原理是不同。②#undef的应用:#include"stdio.h"voidTest();intmain(intargc,char*argv[]){#defineCONST_NAME1"CONST_NAME1"printf("%s",CONST_NAME1);#undefCONST_NAME1printf("%s",CON

3、ST_NAME1);/*错误,CONST_NAME1的定义已经取消*/{#defineCONST_NAME2"CONST_NAME2"printf("%s",CONST_NAME2);}printf("%s",CONST_NAME2);return0;}voidTest(){printf("%s",CONST_NAME2);}在程序的编译的时候,系统提示如下信息errorC2065:'CONST_NAME1':undeclaredidentifier出现上述编译错误的原因是,在第二次应用符号常量CONST_NAME1时,此符号常量已经被取消定

4、义。2、文件包含:#include<文件名>,这种属于标准方式,用于编译系统指定的文件。#include“文件名”,这种属于用户方式,查找用户当前工作的文件夹中的文件,如果不存在则再按照标准方式查询。3、条件编译(常见的三种形式):①第一种形式:#ifdefined(或者是ifdef)<标识符><程序段1>[#else<程序段2>]#endif②第二种形式:#if!defined(或者是ifndef)<标识符><程序段1>[#else<程序段2>]#endif③第三种形式常用与C++编译器中。#ifdef…[#elif…][#elif…]#else…#e

5、ndif4、其他条件编译命令:①#error:语法格式如下:#errortoken-sequence其主要的作用是在编译的时候输出编译错误信息token-sequence,从方便程序员检查程序中出现的错误。例如下面的程序#include"stdio.h"intmain(intargc,char*argv[]){#defineCONST_NAME1"CONST_NAME1"printf("%s",CONST_NAME1);#undefCONST_NAME1#ifndefCONST_NAME1#errorNodefinedConstantSymbolCO

6、NST_NAME1#endif{#defineCONST_NAME2"CONST_NAME2"printf("%s",CONST_NAME2);}printf("%s",CONST_NAME2);return0;}在编译的时候输出如编译信息fatalerrorC1189:#error:NodefinedConstantSymbolCONST_NAME1②#pragma在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作.下面介绍了一下该指令的一些常用参数,希望对大家有所帮助!一般格式:#pragm

7、apara一、message参数。message它能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为:#pragmamessage(“消息文本”)当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可能都会忘记有没有正确的设置这些宏,此时我们可以用这条指令在编译的时候就进行检查。假设我们希望判断自己有没有在源代码的什么地方定义了_X86这个宏可以用下面的方法#ifdef_X86#pragmamessage(“_X86macroactivated!”)

8、#endif当我们定义了_X86这个宏以后,应用程序在编译时就会在编译输出窗口里

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

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

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