我有以下三个文件
Test.cpp
void helloworld()
{
disable pf;
pf.Disable();
printf("No statement \n");
}
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();
};
执行后,我得到的输出为No Statement
Hello World
. 但我想two printf statements
通过调用Disable function
和disable constructor
..来禁用这些。请帮助我为什么它不起作用以及如何解决这个问题。请帮忙。
但如果我喜欢的话,一切都会好起来的
main()
{
#define printf(fmt, ...) (0)
printf("Hello World");
}
但是,如果我从函数中调用它,为什么不呢?