gpt4 book ai didi

c++ - 调试宏与调试变量

转载 作者:太空宇宙 更新时间:2023-11-04 15:35:37 24 4
gpt4 key购买 nike

下面是一个使用调试变量的例子

class A{
public:
A(bool debug):m_debug(debug){};
~A(){};

void Test(){
for(int i=0;i<1000000;i++){
// do something

if(m_debug) print();
}
}

void print(){
std::cout << "something" << std::endl;
}


private:
bool m_debug;
};

下面是一个使用调试宏预处理器的例子

#include "Preprocessor.h"

class A{
public:
void Test(){
for(int i=0;i<1000000;i++){
// do something

#ifdef DEBUG
print();
#endif
}
}

void print(){
std::cout << "something" << std::endl;
}
};

在 Preprocessor.h 中就是简单的

#define DEBUG

使用调试变量的好处是该类对全局预处理器 header 的依赖性降低了。宏方法的好处是在运行时执行的 if 语句少了 1000000 条,这对于假设每个 fps 都很重要的图形应用程序来说可能是至关重要的。什么会被认为是更好的方法?

最佳答案

更好的方法是使用预处理器,但是,它不需要新的头文件来定义宏。

您可以在编译时设置标志,使用 -DMACRO_NAME 或者,在您的情况下,-DDEBUG

关于c++ - 调试宏与调试变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34728606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com