以下の3つのファイルがあります
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");
}
しかし、関数から呼び出している場合はどうですか?