c语言宏注意事项

数值型宏

cpp 复制代码
#define PI 3.14f

常用

cpp 复制代码
#define FILE_SUCCEEDS 0

主要用于方便阅读代码

表达式宏

cpp 复制代码
#define GET_AREA(r) (PI * (r) * (r))

注意宏大写,表达式需要打括号,不然会出bug

语句宏

cpp 复制代码
#define SHOW_ALL (argc)\
    printf("**\r\n");\
    printf("%d", argc);

说明性宏

cpp 复制代码
#define EXPORT

兼容性宏

cpp 复制代码
#define INT int

可以随时修改类型

语句块宏多函数操作

cpp 复制代码
#define DEF_AREA(type)\
    type Area_##type (type)\
    {\
        return (type)3.14f * r * r;\
    }
#define CALL_AREA(type, r) Area_##type(r)

##为连接符

使用时需要声明再调用

cpp 复制代码
DEF_AREA(int);
DEF_AREA(float);
//声明
int n = CALL_AREA(int, 96);
float f = CALL_AREA(float, 93.6f);
//调用

预编译宏

cpp 复制代码
#if Test
    printf("TEST\r\n");
#else
    peintf("NO TEST\r\n");
#endif

使用方法

cpp 复制代码
#ifdef TEST
//定义,进主函数,注意代码先后

编译选项宏

bash 复制代码
cl /c /d "TEST" xxx.cpp

注意事项

编译器内置宏(无法取消)(一般用于排错)

cpp 复制代码
#undef PI
//取消宏定义
__FILE__    文件路径
__LINE__    行号
_MSC_VER    cl版本

宏防重包含

cpp 复制代码
#ifdef
相关推荐
Ulyanov7 分钟前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio组件化开发与UI组件库构建
开发语言·python·qt·ui·雷达电子战系统仿真
词元Max8 分钟前
2.8 pydantic 数据校验:AI 开发的隐形利器
开发语言·人工智能·python
2401_8653825012 分钟前
各省政务信息化项目验收材料清单汇总及差异分析
java·开发语言·数据库
froginwe1116 分钟前
MySQL 删除数据库
开发语言
Rust研习社16 分钟前
深入浅出 Rust 泛型:从入门到实战
开发语言·后端·算法·rust
旷世奇才李先生35 分钟前
Python爬虫实战:多线程爬取\+数据清洗\+可视化(附完整源码)
开发语言·爬虫·python
郭涤生37 分钟前
C++ 回调较容易出错问题
开发语言·c++
Fanfanaas37 分钟前
Linux 系统编程 进程篇(五)
linux·服务器·c语言·网络·学习·进程
开源盛世!!1 小时前
4.20-4.22
java·服务器·开发语言
MmeD UCIZ1 小时前
GO 快速升级Go版本
开发语言·redis·golang