宏定义又称为宏代换、宏替换,简称为宏。是 C 语言中最为常用的三种预处理指令之一。宏定义指令,是由 # 和关键字 define 组合而成的。它的作用是文本替换,使用标识符来代替替换列表中的内容。使用宏定义可以提高程序的通用性、易读性,减少因为输入错误产生的各种问题,同时还便于修改。例如:此处定义了一个宏...
虽然预处理阶段的宏定义没问题,但在编译阶段是会产生错误的。因为宏定义只是文本替换,所以预处理的时候,会将所有的 N 替换成 5;,放到源代码中 arr[5;] 这种写法不符合 C 语言语法,所以就会产生报错。 无参宏定义还可以替换表达式,但需要注意的是,表达式需要加上括号,否则就会出现逻辑上的错误。 例如: #define...
实际上,我们可以通过定义宏的方式给C语言符号添加别名,从而改变C语言的语法。例如,对于习惯使用Pascal的begin和end(而不是C语言的{和})的程序员,可以定义下面的宏: 代码语言:javascript 复制 #defineBEGIN{#defineEND} 我们甚至可以发明自己的语言。例如,我们可以创建一个LOOP“语句”,来实现一个无限循环: #define ...
将.c 文件转化成 .i文件 使用的gcc命令是:gcc –E 对应于预处理命令cpp 编译 将.c/.h文件转换成.s文件 使用的gcc命令是:gcc –S 对应于编译命令 cc –S 汇编 将.s 文件转化成 .o文件 使用的gcc 命令是:gcc –c 对应于汇编命令是 as 链接 将.o文件转化成可执行程序 使用的gcc 命令是: gcc 对应...
c语言define用法举例 山西龙采 山西龙采 | 发布2021-05-26 #define命令是C语言中的一个宏定义命令,该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。(1) 简单的宏定义: #define \u003c宏名\u003e \u003c字符串\u003e (2) 带参数的宏定义 #define \u003c宏名\u003e (\u003c参数表\u0...
替换列表是一系列的C语言记号,包括标识符、关键字、数、字符常量、字符串字面量、运算符和标点符号。当预处理器遇到一个宏定义时,会做一个 “标识符”代表“替换列表”的记录。在文件后面的内容中,不管标识符在任何位置出现,预处理器都会用替换列表代替它。
本文将介绍几种在C/C++中使用宏定义的技巧。 宏定义技巧一:定义常量 在C/C++中,我们经常需要使用一些常量,如π、e等,可以使用宏定义来定义这些常量,例如下面的代码定义了π的值并使用: #define PI 3.14159265358979323846 ... double area = PI * r * r; 使用宏定义定义常量可以减少代码中的魔法数字,提高...
简介:C语言字符串、宏定义及主函数介绍 一、字符串 1、字符串声明 #include <stdio.h>int main() {char str[] = "abc"; //用字符串字面值对字符数组进行初始化,这样就可以把字符串字面值里的所有内容都放到字符数组里(包括'\0'字符)printf("sizeof(str)是%d\n", sizeof(str));//%s占位符从一个...
C语言知识|带参数的宏定义 C语言允许宏带有参数。在宏定义中的参数称为“形式参数”,在宏调用中的参数称为“实际参数”,这点和函数有些类似。对带参数的宏,在展开过程中不仅要进行字符串替换,还要用实参去替换形参。带参宏定义的一般形式为:#define 宏名(形参列表) 字符串 在字符串中可以含有各个形参。带...
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。 下面列举一些成熟软件中常用的宏定义: ——— 1、防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H//头文件内容#endif ——— 2、重新定义一些类型...