可以在Visual Studio 2010中隐藏#Define /宏

Possible to hide #define / Macros in Visual Studio 2010?

本文关键字:隐藏 #Define 2010 Visual Studio      更新时间:2023-10-16

我有一些我用秒表来仪器的代码,以记录执行时间的何处。我不想总是运行它,所以我认为处理计时器的最有效方法涉及使用前处理前宏。对于下面的示例,如果定义了ENABLE_ENGR_PROFILING,我将秒表上的start()函数调用,进行一些工作,然后在秒表上呼叫comguate(),该秒表需要从start(start()测量的时间delta)并将其添加到时间计数器中。然后,在程序结束时,我可以抛弃时间,看看时间去了哪里。这效果很好,但是增加了很多代码。当我使用该算法时,我不想被计时器代码分散注意力。在下面的7行中,我真的只想看到1行,someTimeConsumingCode()我正在研究程序时。有没有办法将这些宏隐藏在Visual Studio 2010中?

#if defined(ENABLE_ENGR_PROFILING)
stopwatch.start();  
#endif
someTimeConsumingCode();
#if defined(ENABLE_ENGR_PROFILING)
stopwatch.accumulate(); 
#endif

我认为您不能完全隐藏代码,但是您可以定义一些宏来清理混乱:

#if defined(ENABLE_ENGR_PROFILING)
#define DECLARE_STOPWATCH() TStopWatch stopwatch; // <- whatever your class type actually is
#define START_STOPWATCH() stopwatch.start()
#define ACCUMULATE_STOPWATCH() stopwatch.accumulate()
#else
#define DECLARE_STOPWATCH()
#define START_STOPWATCH()
#define ACCUMULATE_STOPWATCH()
#endif

DECLARE_STOPWATCH();
...
START_STOPWATCH();
someTimeConsumingCode();
ACCUMULATE_STOPWATCH();