Rashed Azad Rashed Azad - 19 days ago 5x
C++ Question

Confusion with DEBUG macro


#include <iostream>
#include "Class1.h"
#define DEBUG

int main() {


#include <cassert>

#ifndef CLASS1_H_
#define CLASS1_H_

#if defined(DEBUG)

void checkAssert(){
int number = 10;
assert(number == 10);


void checkAssert(){
std::cout << "opps" << std::endl;

#endif /* DEBUG */
#endif /* CLASS1_H_ */

1. I have defined DEBUG in main file.

2.In Class1.h #if defined(DEBUG) is for check if DEBUG is defined or not(according to my understanding).

I am trying this program to understand how DEBUG macro works in c++, But every time I have opps output in the screen.
Can anyone please help me to understand what is going on.


Your test.cpp sets the macro after the header file is included already. That's too late. You have to set the macro before including the header file:

#define DEBUG
#include <Class1.h>