Come posso rimuovere la duplicazione tra queste macro C?
-
22-08-2019 - |
Domanda
Ho la seguente paio di C le macro pre-processore per la creazione di funzioni di test:
// 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()
che viene utilizzato in questo modo:
test(TestName) {
// Test code here
}
e
// 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()
che viene utilizzato in questo modo:
test(TestName, TestSuiteName) {
// Test code here
}
Come posso rimuovere la duplicazione tra le due macro?
Soluzione
#define test(name) testInSuite( name, TestSuite::active() )
Tuttavia, questo non riduce la quantità di C emessa e codice macchina, rimuove solo la duplicazione logica.
Altri suggerimenti
Prova:
#define test(name) testInSuite (name, TestSuite::active())
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow