#define 定义常量和宏

简介: 工作机理:直接替换,以下列代码为例编译器直接将用到max的地方替换为100

一、#define 定义常量


工作机理:直接替换,以下列代码为例编译器直接将用到max的地方替换为100

#define max 100
int main()
{
    int arr[max] = { 0 };
    int a = max;
    return 0;
}

二、#define 定义宏


工作机理:直接替换,以下列代码为例,编译器直接将用到Add (x,y) 的地方替换为 x + y;将用到 print(x)的地方替换为 printf("%d\n",x) ,相比于函数执行速度更快


注意:定义宏没有实参有形参的说法,参数也没有类型

#define Add(x,y)(x+y)
#define print(x)(printf("%d\n",x))
int main()
{
    int a = Add(3, 5);
    printf("%d\n", a);
    print(a);
    return 0;
}


目录
相关文章
|
1月前
|
编译器 C语言
C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)
C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)
|
1月前
#define定义常量和宏
#define定义常量和宏
13 0
|
2月前
|
编译器 C语言 C++
define与const关键字的多种用法
define与const关键字的多种用法
32 0
|
4月前
宏定义和带参数的宏
宏定义和带参数的宏
21 0
|
6月前
#define定义标识符以及定义宏
#define定义标识符以及定义宏
33 0
|
8月前
|
C++
C++宏 #与##的区别
C++宏 #与##的区别
35 0
|
9月前
|
C语言
学C的第四天(各种操作符补充;简单了解多种关键字,define定义常量和宏,结构体)(1)
10.6:关系操作符: >:大于 >=:大于等于 <:小于 <=:小于等于 !=:用于测试“不相等” ==:用于测试“相等”
|
9月前
|
Java 编译器 C语言
学C的第四天(各种操作符补充;简单了解多种关键字,define定义常量和宏,结构体)(2)
[被static修饰的变量(静态变量)和全局变量的区别:都存放在静态区中,但静态变量的作用域还是在局部,全局变量的作用域是任意地方,两者生命周期相同,都是程序结束才销毁] 2.修饰全局变量 - 称为静态全局变量 (未使用static时:)
|
9月前
|
存储 Serverless C语言
CPP2022-13-结构体与枚举(上)
CPP2022-13-结构体与枚举
121 0
|
10月前
用#define宏实现Add函数
用#define宏实现Add函数
57 0