【发布时间】:2021-05-07 10:42:11
【问题描述】:
我一直在课堂上制作一些宏,因为那是我的教授教给我的,但对于实际项目,我们被告知要创建一个库以使我们的生活更轻松。我可以在里面放宏吗?还是我应该将它们转换为函数?如果是这样,有人可以帮我转换其中一个,因为我对返回类型等有点困惑。
#define BV(bit) (1 << (bit))
#define setBit(byte, mask) (byte |= (mask))
#define clearBit(byte, mask) (byte &= ~(mask))
【问题讨论】:
-
在我看来
setBit(byte, mask)会返回一个byte。原型可能是:byte setBit(byte value, byte mask);既然这似乎是家庭作业,剩下的就交给你了。 -
宏属于头文件。因此,您可以拥有一个包含它们的特殊头文件。另一方面,函数可以进入预编译库。