可以在Visual Studio 2010中隐藏#Define /宏
Possible to hide #define / Macros in Visual Studio 2010?
我有一些我用秒表来仪器的代码,以记录执行时间的何处。我不想总是运行它,所以我认为处理计时器的最有效方法涉及使用前处理前宏。对于下面的示例,如果定义了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();
相关文章:
- 这是我尝试让用户将值输入到数组中.然后将其隐藏为大量的星号
- 结构和双指针隐藏在其他结构中,多层混淆
- 与C代码相比,为什么C++代码不需要"#define _POSIX_C_SOURCE 200809L"?
- 以下 C++ 代码用于 -> "#define idiv(a, b) (((a) + (b) / 2) / (b))" 是什么?
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 如何以静态代码分析友好的方式使用 #define 防护?
- 参数包构造函数在类模板中隐藏用户定义的转换
- C++相当于整数的 #define
- 如何等待窗口隐藏在Qt中?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 如何使用类型别名从模板化类中隐藏模板列表
- 在设计 SDK 时,我是否应该在 C++ 头文件中完全隐藏内部类?
- 在C++中使用变量而不是"#define"来指定数组大小是不是一种糟糕的做法?(C错误:在文件范围内
- 我们可以用 C 语言嵌套 #define 和 #if 吗?
- 如何将旧的 C 样式 #define 映射与现代C++进行调整?
- 名称隐藏对静态函数继承的实例使用
- 找不到 #define 的函数定义
- "#define X X"是什么意思?
- 可以在Visual Studio 2010中隐藏#Define /宏
- 为什么不是't使用#define来隐藏在此处工作的unique_ptr丑陋