プリプロセッサ定数の値を保存してから「上書き」しようとしています。
私の問題:以下のコードは、変数 'A' にプリプロセッサ定数の値を格納しようとし、コードはその変数を定義解除してから、新しい値を持つように再定義します。問題は、変数 'A' が古い値ではなく、新しく定義された値を持つことです。その参照ではなく、プリプロセッサ定数の値を保存できますか (何が起こっているように見えますか)?
#ifdef CUSTOM_EVENT_CALLBACK_DEFINED
#define SUB_CUSTOM_EVENT_CALLBACK_DEFINED CUSTOM_EVENT_CALLBACK_DEFINED
#undef CUSTOM_EVENT_CALLBACK_DEFINED
#endif
#define CUSTOM_EVENT_CALLBACK_DEFINED "def"
int main()
{
printf(CUSTOM_EVENT_CALLBACK_DEFINED); // prints out "def".
printf("\n");
printf(SUB_CUSTOM_EVENT_CALLBACK_DEFINED); // prints out "def". I was hoping this would be "abc"
printf("\n");
system("PAUSE");
return 0;
}
// Usage: where the function def is a callback function for a window in a civil engineering program that runs ontop of windows
int def(int id, int cmd, int type)
{
#ifdef SUB_CUSTOM_EVENT_CALLBACK_DEFINED
SUB_CUSTOM_EVENT_CALLBACK_DEFINED(id, cmd, type);
#endif
// perform my custom code here
}