I have three files as below
Test.cpp
void helloworld()
{
disable pf;
pf.Disable();
printf("No statement
");
}
int main()
{
disable dis;
helloworld();
printf("Hello World");
system("pause");
return 0;
}
disable.cpp
#include "StdAfx.h"
#include "disable.h"
disable::disable(void)
{#define printf(fmt, ...) (0)}
disable::~disable(void)
{}
void disable::Disable()
{
#define printf(fmt, ...) (0)
}
disable.h
#pragma once
class disable
{
public:
disable(void);
~disable(void);
void Disable();
};
After executing, I am getting output as No Statement
Hello World
.
But I would like to disable these two printf statements
by calling Disable function
and disable constructor
..
Please help me why it is not working and how to solve this. Please help.
But things works fine if I do like
main()
{
#define printf(fmt, ...) (0)
printf("Hello World");
}
But why not if I am calling it from a function?
See Question&Answers more detail:os