Mat*_*och 1 c macros code-duplication c-preprocessor
我有以下几个用于创建测试功能的C预处理器宏:
// Defines a test function in the active suite
#define test(name)\
void test_##name();\
SuiteAppender test_##name##_appender(TestSuite::active(), test_##name);\
void test_##name()
Run Code Online (Sandbox Code Playgroud)
这是这样使用的:
test(TestName) {
// Test code here
}
Run Code Online (Sandbox Code Playgroud)
和
// Defines a test function in the specified suite
#define testInSuite(name, suite)\
void test_##name();\
SuiteAppender test_##name##_appender(suite, test_##name);\
void test_##name()
Run Code Online (Sandbox Code Playgroud)
这是这样使用的:
test(TestName, TestSuiteName) {
// Test code here
}
Run Code Online (Sandbox Code Playgroud)
如何删除两个宏之间的重复?
#define test(name) testInSuite( name, TestSuite::active() )
Run Code Online (Sandbox Code Playgroud)
但是,这不会减少发出的C和机器代码的数量,只会消除逻辑重复.
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |