私は2つのものを持っています: 同じもののライブラリファイルとヘッダー。 ソースファイルにアクセスできません。私ができることは、アプリケーション用にコンパイルされたライブラリを使用することだけです。このために、main.cファイルにヘッダファイルを指定します。私はapplication.hを含む午前application.cファイルでヘッダーファイルを変更せずにアプリケーションコード内のマクロを定義解除するにはどうすればよいですか?
application.h
#define TEST
を: ヘッダ内のコード(application.h)は以下のようにマクロTESTを指定貸し付け私が持っているヘッダー:私のmain.cファイルで今すぐ
#ifdef TEST
{
do this
}
#else
{
do something else
}
私は、ヘッダapplication.hを含めますマクロTESTを使用するつもりはないので、定義を解除します。 明らかに、私はapplication.hファイルで定義を解除することができます。しかし、私はそれをしたくありません。私はそれが動作しないプログラムを実行すると、
main.cの
#include"application.h"
#undef TEST
私はこれを試してみました:main.cの中でこのような 何かをマクロを未定義にする方法はあります。 application.hファイルを変更せずにこれを達成する方法はありますか?
「動作しない」とはどういう意味ですか? '#undef' *を使うことは、マクロの定義を解除する方法です。 '#undef'の後に他のヘッダファイルをインクルードしていますか?それには' 'application.h ''が含まれていますか? –
あなたのメークファイル/プロジェクトファイルに定義するか、定義しないでください – sp2danny
[MCVE]を入力してください。ここに表示されている内容が正しいと思われます。 –