测试.cpp
#include <iostream>
#include "Class1.h"
#define DEBUG
int main() {
checkAssert();
}
类1.h
#include <cassert>
#ifndef CLASS1_H_
#define CLASS1_H_
#if defined(DEBUG)
void checkAssert(){
int number = 10;
assert(number == 10);
}
#else
void checkAssert(){
std::cout << "opps" << std::endl;
}
#endif /* DEBUG */
#endif /* CLASS1_H_ */
1.我在主文件中定义了调试。
2.Class1.h中的#if defined(DEBUG)是检查是否定义了DEBUG(据我理解)
我正在尝试这个程序来了解 DEBUG 宏在 C++ 中的工作原理,但每次我在屏幕上都有 opps 输出。 任何人都可以帮助我了解发生了什么。
最佳答案
您的 test.cpp
设置宏 after 头文件已经包含。那太晚了。您必须在之前设置宏,包括头文件:
#define DEBUG
#include <Class1.h>
关于c++ - 与 DEBUG 宏混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39821051/