在 .lib 工程中定义了#ifdef DebugPrintf (*funcPrint)("ECC challenge Success . \r\n"); #endif,,引用的工程定义DebugPrintf = 0,为什么还是会正常打印?
时间: 2023-12-12 15:02:28 浏览: 170
#ifdef_#else_#endif_#if_#ifndef的用法.txt
5星 · 资源好评率100%
在.lib工程中定义了#ifdef DebugPrintf (*funcPrint)("ECC challenge Success . \r\n"); #endif,这段代码只有在DebugPrintf宏被定义时才会被编译进入库文件中,否则会被忽略。但是在引用该库文件的工程中,如果重新定义了DebugPrintf的值,那么该值会覆盖原来库文件中的宏定义。因此,即使库文件中的DebugPrintf被定义为1,如果在引用该库文件的工程中将DebugPrintf重新定义为0,那么该宏定义就会被覆盖为0,这段代码也就不会被执行了,因此不会打印任何信息。所以,如果你引用的工程定义DebugPrintf = 0,那么应该不会打印信息。如果仍然能够打印信息,可能是由于其他原因导致的。
阅读全文