我正在创建这个多线程 C++ 程序,在发布模式下编译时,我发现了这类错误(对象仍然为空),即,它看起来像是缺少volatile
标记。
但问题是,由于有第二个工作线程接触各种对象,这意味着程序中几乎所有内容都是易变的。
我想知道是否有一种方法可以关闭 Apple LLVM 编译器中的优化,以创建volatile
关键字专门用于修复的错误。这些错误不会出现在调试模式下(因为优化已关闭)。volatile
到处放基本上意味着在每个成员函数volatile
之后添加每个类,并在每个共享变量声明之前添加。volatile
我想我宁愿失去那个volatile
优化也不愿冒着出现虚假错误的风险,因为我忘了标记一些东西volatile
。