
预编译处理的伪指令
文章平均质量分 56
优秀的邓宗磊
这是一个优秀的人呢
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++,预定义符号常量,可直接使用的常量符号
预定义符号常量:c++继承了ANSI C的预定义符号常量如下,预处理器在处理代码时将它们替换成确切的字面常量,这些符号不能用#define重新定义,也不能用#undef取消其定义。LINE:引用该符号的语句的所在行号FILE:引用该符号的语句的源文件名称DATE:引用该符号的所在源文件被编译的日期,字符串TIME:引用该符号的语句被编译的时间,字符串TIMESTAMP:引用该符号的语句被编译的日期和时间,字符串STDC:标准c语言环境会定义该宏以标识当前环境,使用这个宏可以判断当前环境是否是标原创 2021-11-28 14:20:34 · 657 阅读 · 0 评论 -
伪指令,##:合并操作符,标识符,字符转标识符
合并操作符,将出现在其左右的字符序列合并成一个新的标识符,产生的标识符必须预先有定义,否则编译器会报“标识符未定义”的编译错误。标识符:编程语言中就是对象,指针,引用的命名。例如在程序中声明:int iValue = 100;这个int对象的值为100,其标识符为iValue,函数的标识符更加复杂,这里只谈变量标识符。##用法:在带参数的宏定义中,宏体内使用##将入参的标识符进行拼接。例如:#define CLASSNAME(name) classtype##name#define C原创 2021-11-28 14:14:53 · 393 阅读 · 0 评论 -
伪指令-构串操作符,#
构串操作符,#标识符:编程语言中就是对象,指针,引用的命名就叫做标识符。伪指令中的#:#:构串操作符,只能修饰带参数的宏的入值,作用是将入值的字符序列转换成字符串常量,这里是将实参的字符串序列进行转换,而不是入值代表的值。例如:#define STRING(x) #x #x #x#define TEXT(x) "class" #x "info"宏引用函数:void func(){ int abc = 100; string strabc = STRING(abc); strin原创 2021-11-27 16:58:23 · 373 阅读 · 0 评论 -
伪指令#pragma
伪指令#pragma编译伪指令#pragma用于执行语言实现所定义的动作,具体的内容需要参考所使用的编译器的帮助文档。例如:#pragma pack(push,8)#pragma pack(pop)#pragma warning(disable:4096)#pragma comment(lib,"kernel32.lib")#pragma comment(lib,"user32.lib")#pragma comment(lib,"gdi32.lib")//后面三个comment都是用来原创 2021-11-27 16:52:04 · 201 阅读 · 0 评论 -
伪指令,条件编译,#if,#ifdef,#ifndef,#elif,#else,#endif,defined等,以及作用:
伪指令,条件编译,#if,#ifdef,#ifndef,#elif,#else,#endif,defined等,以及作用:使用条件编译可以控制预处理器选择不同的代码段作为编译器的输入,使源代码在不同的编译条件下产生不同的代码。平时在代码中常见的if,else if的语句,是在程序运行时的判断语句,用来决定程序的运行方向。条件编译伪指令是在代码编译成可执行文件时的判断语句,用来决定哪些代码被编译。条件编译为程序的移植和调试带来了极大的方便,因为在不同平台下的c/c++代码是不同的,但语言的运行逻辑和数原创 2021-11-27 16:38:10 · 1370 阅读 · 0 评论 -
伪指令-宏定义:使用#define定义一个宏,宏体中包含命名空间信息导致vs大量报红,但编译和运行却正常
宏定义:使用#define伪指令定义一个宏宏体中包含命名空间信息导致vs大量报红,但编译和运行却正常宏分为不带参数的宏和带参数的宏。在带参数的宏中,关键字#define后面出现的第一个连续字符序列作为宏名,剩下的部分作为宏体。不带参数的宏中,关键字#define后面出现一个连续字符序列作为宏标识符。宏定义有文件作用域,不论宏定义出现在文件中的哪个地方,函数体内,类型定义内部,命名空间等,在它后面的任何地方都可以引用宏。注意点:1、宏定义不是c/c++语句,伪指令都不是c/c++指令,所以它原创 2021-11-27 16:34:43 · 1105 阅读 · 1 评论 -
c++/c中的预编译,文件包含伪指令,#include,包含哨卫,头文件保护
c++/c中的预编译处理:预编译伪指令一般以#开头,前面只能是空白字符,其本身不是c/c++语句,可以出现在程序的任何地方,只要其展开后复合语法规则并且有效即可,其位置可以是头文件,函数体,控制结构,类定义,命名空间等。注意:预编译处理器对预编译伪指令进行处理后生成中间文件作为编译器的输入,所以预编译伪指令都不会进入编译阶段,即:不会被编译,所以assert宏对项目本身是没有影响的。包含文件#include,宏定义#define,条件编译#ifdef以及一些不常用的预编译伪指令和符号常量对代码的可移原创 2021-11-27 16:21:29 · 533 阅读 · 0 评论