C语言预编译 宏定义

C 语言的宏替换由 预处理器(Preprocessor) 负责,它会在 编译前 进行文本替换。

基本使用

#include <stdio.h>

#define PI 3.14159  // 宏定义

int main() {
    printf("PI = %f\n", PI);
    return 0;
}

预处理后的代码

#include <stdio.h>

int main() {
    printf("PI = %f\n", 3.14159);
    return 0;
}

PI 被预处理器替换为 3.14159,这发生在预编译阶段。

宏替换的高级用法

(1)带参数的宏

#define SQUARE(x) ((x) * (x))

int main() {
    printf("5² = %d\n", SQUARE(5)); // 25
}

预处理后:

printf("5² = %d\n", ((5) * (5))); // 25

(2)字符串拼接

#define STR(x) #x
printf("%s\n", STR(Hello));  // "Hello"

预处理后:

printf("%s\n", "Hello");

(3)拼接标识符

#define CONCAT(a, b) a##b
int CONCAT(num, 1) = 10; // 等价于 int num1 = 10;

预处理后:

int num1 = 10;
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容