有什么用 #include (有什么用ipad)

有什么用 #include (有什么用ipad)

本文目录导航:

#include 有什么用

以“#”开局的行称作预解决指令。

预解决指令是由预解决器启动解决的。

#include工具的方式

#if是啥意思

在C/C++编程中,#if是一个关键的预解决器指令,它的作用是启动条件判别,相似于咱们日常生存中的逻辑判别。

这个指令前面理论须要跟上#endif来标志判别的完结。

它常与#else配合经常使用,以依据不同的条件口头不同的代码块。

让咱们经过一个实例来了解它的用法。

假定你正在开发一个软件,须要依据不同的版本提供不同的输入。

你可以首先定义一个版本号,例如这样:cpp#ifndef VERSION#define VERSION 2#endif而后在你的代码中,应用#if来审核版本号:cpp#if VERSION > 2#define CMD 新版本#else#define CMD 老版本#endif这样,当你输入用户正在经常使用的软件消息时,会依据预设的版本号显示不同的版本消息:cppcout << 您经常使用的 << CMD << 软件 << endl;当你编译代码时,编译器会依据VERSION的值启动相应的编译解决,假设VERSION大于2,CMD会被交流成新版本,否则会是老版本。

这就是#if指令在实践开发中的运行。

c言语中预解决命令都有哪些?

咱们可以在C源程序中拔出传给编译程序的各中指令,这些指令被称为预解决器指令,它们扩大了程序设计的环境。现把罕用的预解决命令总结如下: \x0d\x0a1.预解决程序\x0d\x0a依照ANSI规范的定义,预解决程序应该解决以下指令:\x0d\x0a#if #ifdef #ifndef #else #elif\x0d\x0a#endif\x0d\x0a#define\x0d\x0a#undef\x0d\x0a#line\x0d\x0a#error\x0d\x0a#pragma\x0d\x0a#include\x0d\x0a显然,上述一切的12个预解决指令都以符号#开局,,每条预解决指令必定独占一行。\x0d\x0a2.#define\x0d\x0a#define指令定义一个标识符和一个串(也就是字符集),在源程序中发现该标识符时,都用该串交流之。这种标识符称为宏名字,相应的交流称为宏代换。普通方式如下:\x0d\x0a#define macro-name char-sequence\x0d\x0a这种语句不用分号开头。宏名字和串之间可以有多个空白符,但串开局后只能以新行中断。\x0d\x0a例如:咱们经常使用LEFT代表1,用RIGHT代表0,咱们经常使用两个#define指令:\x0d\x0a#define LEFT 1\x0d\x0a#define RIGHT 0\x0d\x0a每当在源程序中遇到LEFT或RIGHT时,编译程序都用1或0交流。\x0d\x0a定义一个宏名字之后,可以在其余宏定义中经常使用,例如:\x0d\x0a#define ONE 1\x0d\x0a#define TWO ONE+ONE\x0d\x0a#define THREE ONE+TWO\x0d\x0a宏代换就是用关系的串代替标识符。因此,假设宿愿定义一条规范失误消息时,可以如下定义:\x0d\x0a#define ERROR_MS “Standard error on input \n”\x0d\x0a假设一个串善于一行,可内行尾用反斜线”\”续行,如下:\x0d\x0a#define LONG_STRING “This is a very very long \\x0d\x0aString that is used as an example”\x0d\x0a3.#error\x0d\x0a#error指令强迫编译程序中止编译,它重要用于程序调试。#error指令的普通方式是:\x0d\x0a#error error-message\x0d\x0a留意,宏串error-message不用双引号解围。遇到#error指令时,失误消息被显示,或者同时还显示编译程序作者预先定义的其余内容。\x0d\x0a4.#include\x0d\x0a程序中的#include指令要求编译程序读入另一个源文件。被读入文件的名字必定用双引号(“”)或一对尖括号(<>)解围,例如:\x0d\x0a#include “stdio.h”\x0d\x0a#include \x0d\x0a都使C编译程序读入并编译头文件以用于I/O系统库函数。\x0d\x0a蕴含文件中可以蕴含其余#include指令,称为嵌套蕴含。准许的最大嵌套深度随编译器而变。\x0d\x0a文件名被双括号或尖括号解围选择了对指定文件的搜查方式。文件名被尖括号解围时,搜查按编译程序作者的定义启动,普通用于搜查某些专门搁置蕴含文件的不凡目录。当文件名被双括号解围时,搜查按编译程序实时的规则启动,普通搜查以后目录。如未发现,再按尖括号解围时的方法从新搜查一次性。\x0d\x0a理论,绝大少数程序员经常使用尖括号解围规范的头文件,双引号用于解围与以后程序关系的文件名。\x0d\x0a\x0d\x0a5.条件编译指令\x0d\x0a若干编译指令准许程序员有选用的编译程序源代码的不同局部,这种环节称为条件编译。\x0d\x0a5.1#if、#else、#elif #endif\x0d\x0a条件编译指令中最罕用的或者是#if,#else,#elif和#endif。这些指令准许程序员依据常数表白式的结果有条件的解围局部代码。\x0d\x0a#if的普通方式是:\x0d\x0a#if constant-expression\x0d\x0aStatement sequence\x0d\x0a#endif\x0d\x0a如#if后的常数表白式为真,则#if和#endif两边的代码被编译,否则疏忽该代码段。#endif标志#if块的完结。\x0d\x0a#else指令的作用与C言语的else相似,#if指令失败时它可以作为备选指令。例如:\x0d\x0a#include \x0d\x0a#define MAX 100\x0d\x0aInt main(void)\x0d\x0a{\x0d\x0a#if MAX>99\x0d\x0aprintf(“Compiled for array greater than 99.\n”);\x0d\x0a#else\x0d\x0aprintf(“Complied for small array.\n”);\x0d\x0a#endif\x0d\x0areturn 0;\x0d\x0a}\x0d\x0a留意,#else既是标志#if块的完结,也标志#else块的开局。由于每个#if只能写一个#endif婚配。\x0d\x0a#elif指令的意思是“否则,假设”,为多重编译选用建设一条if-else-if(假设-否则-假设链)。假设#if表白式为真,该代码块被编译,不测试其余#elif表白式。否则,序列中的下一块被测试,假设成功则编译之。普通方式如下:\x0d\x0a#if expression\x0d\x0aStatement sequence\x0d\x0a#elif expression1\x0d\x0aStatement sequence\x0d\x0a#elif expression2\x0d\x0aStatement sequence\x0d\x0a.\x0d\x0a.\x0d\x0a.\x0d\x0a#elif expression\x0d\x0aStatement sequence\x0d\x0a#endif\x0d\x0a5.2#ifdef和#ifndef\x0d\x0a条件编译的另一个方法是经常使用编译指令#ifdef和#ifndef,区分示意“假设已定义”和“假设未定义”。#ifdef的普通方式如下:\x0d\x0a#ifdef macro-name\x0d\x0aStatement sequence\x0d\x0a#endif\x0d\x0a假设macro-name原先曾经被一个#define语句定义,则编译其中的代码块。\x0d\x0a#ifndef的普通方式是:\x0d\x0a#ifndef macro-name\x0d\x0aStatement sequence\x0d\x0a#endif\x0d\x0a假设macro-name以后未被#define语句定义,则编译其中的代码块。\x0d\x0a\x0d\x0a我以为,用这种,可以很繁难的开启/封锁整个程序的某项特定配置。\x0d\x0a#ifdef和#ifndef都可以经常使用#else或#elif语句。\x0d\x0a#inlucde \x0d\x0a#define T 10\x0d\x0aInt main(void)\x0d\x0a{\x0d\x0a#ifdef t\x0d\x0aPrintf(“Hi T\n”);\x0d\x0a#else\x0d\x0aPrintf(“Hi anyone\n”);\x0d\x0a#endif\x0d\x0a#ifndef M\x0d\x0aPrintf(“M Not Defined\n”);\x0d\x0a#endif\x0d\x0aReturn 0;\x0d\x0a}\x0d\x0a6.#undef\x0d\x0a#undef指令删除前面定义的宏名字。也就是说,它“不定义”宏。普通方式为:\x0d\x0a#undef macro-name\x0d\x0a7.经常使用defined\x0d\x0a除#ifdef之外,还有另外一种确定能否认义宏名字的方法,即可以将#if指令与defined编译时操作符一同经常使用。defined操作符的普通方式如下:\x0d\x0adefined macro-name\x0d\x0a假设macro-name是以后定义的,则表白式为真,否则为假。\x0d\x0a例如,确定宏MY能否认义,可以经常使用下列两种预解决命令之一:\x0d\x0a#if defined MY\x0d\x0a或\x0d\x0a#ifdef MY\x0d\x0a也可以在defined之前加上慨叹号”!”来反转相应的条件。例如,只要在DEBUG未定义的状况下才编译。\x0d\x0a#if !defined DEBUG\x0d\x0aPrintf(“Final Version!\n”);\x0d\x0a#endif\x0d\x0a经常使用defined的一个要素是,它准许由#elif语句确定的宏名字存在。\x0d\x0a8.#line\x0d\x0a#line指令扭转__LINE__和__FILE__的内容。__LINE__和__FILE__都是编译程序中预约义的标识符。标识符__LINE__的内容是以后被编译代码行的行号,__FILE__的内容是以后被编译源文件的文件名。#line的普通方式是:\x0d\x0a#line number “filename”\x0d\x0a其中,number是正整数并变成__LINE__的新值;可选的“filename”是非法文件标识符并变成__FILE__的新值。#line重要用于调试和不凡运行。\x0d\x0a\x0d\x0a9.#pragma\x0d\x0a#pragma是编译程序成功时定义的指令,它准许由此向编译程序传入各种指令。例如,一个编译程序或者具备支持跟踪程序口头的选项,此时可以用#pragma语句选用该配置。编译程序疏忽其不支持的#pragma选项。#pragma提高C源程序对编译程序的可移植性。\x0d\x0a10. 预解决操作符#和##\x0d\x0a有两个预解决操作符:#和##,它们可以在#define中经常使用。\x0d\x0a操作符#理论称为字符串化的操作符,它把其后的串变成用双引号解围的串。例如:\x0d\x0a#include \x0d\x0a#define mkstr(s) #s\x0d\x0aint main(void)\x0d\x0a{\x0d\x0aPrintf(mkstr(I like C));\x0d\x0aReturn 0;\x0d\x0a}\x0d\x0a预解决程序把以下的语句:\x0d\x0aPrintf(mkstr(I like C));\x0d\x0a变成\x0d\x0aPrintf(“I like C”);\x0d\x0a操作符##把两个标志拼在一同,构成一个新标志。例如:\x0d\x0a#include \x0d\x0a#define concat(a,a) a##b\x0d\x0aint main(void)\x0d\x0a{\x0d\x0aInt xy = 10;\x0d\x0aPrintf(“%d”,concat(x,y));\x0d\x0aReturn 0;\x0d\x0a}\x0d\x0a预解决程序把以下语句:\x0d\x0aPrintf(“%d”,concat(x,y));\x0d\x0a变成\x0d\x0aPrintf(“%d”,xy);\x0d\x0a操作符#和##重要作用是准许预解决程序对付某些不凡状况,少数程序中并不须要。

\x0d\x0a11. 预约义宏\x0d\x0aC规范了5个固有的预约义宏,它们是:\x0d\x0a__LINE__\x0d\x0a__FILE__\x0d\x0a__DATE__\x0d\x0a__TIME__\x0d\x0a__STDC__\x0d\x0a__LINE__和__FILE__蕴含正在编译的程序的行号和文件名。

\x0d\x0a__DATE__和内容形如month/day/year(月/日/年)的串,代表源文件翻译成指标码的日期。

\x0d\x0a__TIME__中的串代表源代码编译成指标码的期间,形如hour:minute:second(时:分:秒)\x0d\x0a假设__STDC__的内容是十进制常数1,则示意编译程序的成功合乎规范C。

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

83阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

88阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

86阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

78阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读