我已经学习了涵盖 C 语言的编程语言本科类(class)。然而,并不是说我已经开始在一家从事嵌入式系统的公司工作,我看到 C 语言中经常使用过多的宏。
请分享一些链接,我可以从中了解有关宏的更多信息。
我有 K&R 第二版,但我认为他们的风格太简洁了。有更多例子的东西对我来说会更好。
最佳答案
老实说,现在您应该将宏的使用限制在非常简单的定义中。
换句话说,不要浪费时间用宏来制作复杂的函数。
它们在过去往往具有三个主要用途:
供预编译器使用的简单定义,例如
#define USE_DEBUG
和#ifdef USE_DEBUG
。总的来说,这些在可移植代码中仍然非常有值(value)。快速“内联”函数,例如
#define SQR(x) ((x) * (x))
现在更适合真正的内联函数。宏版本有很多问题,其中之一是i = 7; j = SQR(i++);
不一定会做你期望的事情。预处理器枚举,如
#define OKAY 0
、#define ERR_NOMEM 1
等等 - 这些最好作为真实枚举来完成 - 因为宏版本是基本替换,您往往不会在调试信息中获取符号。
关于c - 学习C语言宏的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5712521/