C语言:宏
虽然在较为现代的编程语言中,宏是个很少见的概念,C++虽然兼容C语法而保留了宏的概念,但也并不提倡使用宏。并且宏也是导致种种bug和难以理解的代码的常见根源之一。尽管如此,宏在C语言中的作用却是无可替代的,作为C程序员只有理解了宏,才能正确的使用宏,真正了解代码中各类宏的含义,同时避免陷入各类宏陷阱当中。
宏的作用和处理时间
首先必须明白,宏的核心作用是给代码段以名字,然后用代码段去替代后续代码中名字出现的地方。
因此宏的实质就是文本替换,其操作由预处理器执行,在预处理处理注释之后。编译器的作用时间在预处理器之后,因此编译错误都是在宏展开后再进行检测的。
宏的两种类型
宏有两者类型:不带参数的宏和带参数的宏。不带参数的宏其性质多类似于对象,而带参数的宏其性质多类似于函数。
既然函数可以不带参数,因此也有部分不带参数的宏性质更类似于函数。
不带参数的宏
不带参数的宏其性质多类似于对象。
带参数的宏
字符串化
陷阱
嵌套宏
本文由作者按照 CC BY 4.0 进行授权