c++ - 通过编译器在 C++ 中设置 Bool 的默认值
问题描述
我正在尝试对开源 C++ 项目进行一些更改。我知道C++中BOOL的值在声明的时候应该初始化,否则会出人意料。但是几乎所有原始代码中的布尔变量都是这样声明的未初始化
bool oracle_pro_decl;
bool _oracle_external_procedure;
bool _oracle_language_procedure;
我使用 GNU C++ 作为编译器,有没有办法将 bool 的所有默认值设置为 false?
解决方案
我使用 GNU C++ 作为编译器,有没有办法将 bool 的所有默认值设置为 false?
如果你这样做,你正在改变 C++ 的语义。阅读 C++11 标准n3337并查看此 C++ 参考网站。
但是,您可以这样编写GCC 插件(隐式将每个bool
自动变量初始化为 false)。您的插件将在GIMPLE级别上工作。
我的观点是编写这样的 GCC 插件是个坏主意。
我的建议是启用更多警告和调试信息,即编译然后使用GDB 调试器(也许还有valgrind)。一旦你的程序几乎没有错误,你可能会要求 GCC 进行更多优化(例如使用)g++ -Wall -Wextra -g
-O2
您还可以考虑使用Clang 静态分析器。
推荐阅读
- android - Android Firebase 数据库组合多个查询
- android - 具有不同父控件的 Xamarin 自定义渲染器
- python - 在许多列表中出现一个值
- vue.js - 自己的 vue 组件的 Prop Suggestions/IntelliSense
- git - 在 Windows 10 上制作合并工具 PhpStorm
- javascript - 获取Firebase数据库()时如何正确清理函数()?
- jena - 如何配置 fuseki jena 以使用推理器和 TDB + tdb:UnionDefaultGraph
- excel - 列表在VBA代码中转换矩阵表
- python-3.x - 在没有 Agg 的多列列上旋转 Pandas 数据框
- react-native - 反应原生导航问题(嵌套堆栈、抽屉和底部选项卡)