如何删除这些 C 宏之间的重复项?
我有以下几个用于创建测试函数的 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()
哪个像这样使用:
test(TestName) {
// Test code here
}
哪个
// 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()
像这样使用:
test(TestName, TestSuiteName) {
// Test code here
}
如何删除两个宏之间的重复?
I have the following couple of C pre-processor macros for creating test functions:
// 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()
which is used like this:
test(TestName) {
// Test code here
}
and
// 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()
which is used like this:
test(TestName, TestSuiteName) {
// Test code here
}
How can I remove the duplication between the two macros?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
然而,这并没有减少发出的 C 和机器代码的数量,只是删除了逻辑重复。
However this doesn't reduce the amount of emitted C and machine code, only removes logical duplication.
尝试:
Try: