C语言中的宏(macro) 在C语言中,宏(macro)也是一个挺有意思的东西。C语言中的宏由预处理指令 #define 来定义。说到这里,再简单了解下预处理。在编译器对程序处理的过程中,在字符到源字符的映射和逻辑行处理后就会对文本进行划分,划分出预处理的语言符号(token)序列及空白字符和注释序列,然后就是预处理的过程了。预处理指令 #define是一个明显常量定义指令,用于定义符号
转载
2024-05-29 23:20:51
94阅读
#代表命令要被预处理器处理#define 定义的宏可以出现在程序的任意位置#define 定义之后的代码都可以使用这个宏 宏是字面量,不占用内存 单步编译预处理器,只进行文本替换,不进行语法检查:gcc -E test.c -D test.i 完整编译:gcc test.c 宏表达式#define
转载
2019-06-09 21:40:00
146阅读
2评论
#include #define LEN 6 #define MAX(a, b) (a > b ? a : b) #define SWAP(x, y) \ x = x+y;\ y = x - y;\ x = x - y; int arr[LEN] = {1,2,3,4,5,6}; int main(){ printf("%d\n", (int)sizeof(arr)); i...
转载
2017-08-10 11:24:00
79阅读
2评论
一. #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语
转载
2013-12-28 17:56:00
135阅读
2评论
宏是什么 计算机科学里的宏是一种抽象(Abstraction), 它根据一系列预定义的规则替换一定的文本模式。 解释器或编译器在遇到宏时会自动进行这一模式替换。 对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。 绝大多数情况下,“宏”这个词的使用暗示着将小命令或动作转化为一系列指
转载
2021-05-20 18:16:00
243阅读
2评论
1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由
原创
2023-04-23 09:17:20
135阅读
所谓的宏就是一种预处理命令,什么是与处理呢?即在编译过程之前先对程序代码做出的必要的转换处理。宏有两个作用:1.当遇到需要将程序某个特定的数量在程序中出现的所有实例通通加以修改时,程序只需改动一处即可。2.大多数C语言函数调用时都会带来重大的系统开销,而宏看上去像一个函数却没有函数调用的开销。 宏虽然有优点,但是
目的是利用某一标识符标识某个文本字符串。在编写程序时,如果程序中反复地使用某个数据或某段程序片段,就可以考虑将这个数据或程序片段定义为宏,然后每个出现该数据或程序片段的地方用宏名替代,选择宏定义来做的好处是程序简洁,可读性好,而且当需要修改这些相同的程序片段时,只要修改宏定义中的字符串即可,不需要修改多处。宏定义命令:define优点:方便程序的修改,同时也能提
转载
2024-06-28 19:54:39
161阅读
常用宏定义 数值相关的宏定义 闰年的判断 ,年份可以整除4并且不能整除100,或者可以整除400,则为闰年;#define IS_LEAP_YEAR(y) (((((y) % 4) == 0) && (((y) % 100) != 0)) \ || (((y) % 400) == 0))/*判断是否是闰年*/ 1
原创
2021-04-16 12:27:19
2631阅读
1:开关作用,条件编程
#ifdef A
程序段
#endif
2:避免重复定义,重复包舍
#ifndef A
#defined A
程序段
#endif这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另
转载
2023-07-20 21:04:21
220阅读
使用要求:头文件:#include 当使用assert()时,给它一个参数,即一个表示断言为真的表达式。预处理器产生测试该断言的的代码,如果断言不为真,则在发出一个错误信息告诉断言是什么,以及它失败之后,程序终止。例:#include using namespace std;int main(){ int a = 1; assert(1 != a); ret
原创
2022-08-30 12:20:17
192阅读
define MAX 1025 //定义宏int main()int main()运行结果if (!exit(1);1.宏函数要保证运算的完整性。2.宏函数在一
#define主要功能 c语言中用到很多宏定义 ,为了头文件被重复用到#ifndef #define,#ifdefine edfif等条件编译 宏不是语句,结尾不用加“;”,否则会被替换进进程中 #表示这是一条预处理指令 如果写宏不止一行,则在结尾加反斜杠使多行能连接上,但第二行要对齐,否则空格也会
转载
2020-05-30 22:50:00
441阅读
2评论
特殊符号#、##(1)# Whenyouputa#beforeanargumentinapreprocessor macro,thepreprocessorturnsthatargumentintoacharacterarray. 在一个宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数...
转载
2015-03-02 21:05:00
187阅读
2评论
C语言中的宏定义是一种强大的预处理器功能,用于在编译之前对代码进行替换和条件编译。通过使用 `#define`、`#undef`、`#ifde
忘了啥时候记的笔记了 文章目录宏定义1.不带参数的宏定义:2.带参数的宏定义:C语言宏定义技巧(常用宏定义)1,防止一个头文件被重复包含2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。3,得到指定地址上的一个字节或字4,求最大值和最小值5,得到一个变量的地址(word宽度)6,得到一个字的低位和高位字节7,将一个字母转换为大写8,返回数组元素的个数9,宏定义
C语言宏定义和宏定义函数 宏定义可以帮助我们防止出错,提高代码用函数来实现: int max( int a, int b
转载
2022-10-31 17:57:03
236阅读