在代码中修改预处理器宏是一种好的风格吗
Is it a good style to modify a preprocessor macro in the code?
我有一些定义宏VALUE1的代码。在代码的一部分中,我需要更改该值
这是正确的方法吗?
#define VALUE1 123
...
#define VALUE1 345
...
// Reset the original value
#define VALUE1 123
编译器(GCC)对重新定义给出了警告。
它会给你一个警告,因为大多数时候它是不需要的:你给现有宏赋值是因为你不知道它存在。
当你必须这样做时,IMO最好更明确(让预处理器知道这不是错误,也让人类读者清楚):
#define VALUE 1
#undef VALUE
#define VALUE 2
#undef VALUE
#define VALUE 3
仅供参考,您甚至可以使用#pragma GCC diagnostic ignored
禁用该警告,但即使在这种情况下,您也最好写一些东西来解释原因。
也就是说,你可以考虑审查你的设计,如果没有更多关于你的代码(或你想要实现的目标)的信息,我无法说得更好,但如果你需要这样的技巧,一点重构可能会让一切变得更清楚。
相关文章:
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 有没有一种方法可以在编译时获得作用域类名
- 对于C++中使用智能指针的指针算术限制,有没有一种变通方法
- 一种在C++中读取TXT配置文件的简单方法
- 有没有一种方法可以测量c++程序的运行时内存使用情况
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 在调用接收数组的方法时,模板化数组大小是不是一种糟糕的做法
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 是否有一种替换C风格的Bool数组的标准方法
- 在C++代码中使用C风格的注释是不是一种糟糕的做法
- 在find()中提供布尔值是一种糟糕的风格吗
- 使用 lambda 函数定义非常小的帮助程序函数是一种好风格吗?
- 创建过于简单的函数是一种糟糕的风格吗
- 在代码中修改预处理器宏是一种好的风格吗
- 有没有一种方法可以从镶嵌图中提取文档的风格信息
- c++枚举类型可以作为函数调用吗?或者它只是一种不同风格的类型转换
- 使用这个来引用类中的私有成员是一种好的风格吗?
- 一种使用不同风格的私有成员的方法