Например, я хотел бы сделать макрос отладки, который печатает строку кода, прежде чем пытаться ее выполнить. Я предполагаю, что это должно выглядеть примерно так, чтоМожно ли передать строку кода в C C++ - макрос?
#define TRACE(string) printf("Trying to execute: %s\n",\"string\"); \
string
...
void foo() {
printf("1\n");
}
void bar() {
printf("2\n");
}
int main() {
...
foo();
TRACE(bar(););
...
}
С ожидаемым выходом
...
1
Trying to execute: bar();
2
...
Ну, это не так, как один делает это: компилятор жалуется на незаконное синтаксисом. Есть ли способ сделать это вообще?
C не поддерживает такие строки. Исследование Char Array и вы найдете решение – Joshpbarron
В ответах ... Нужна '#', но, кроме того, последняя точка с запятой вызовет 'bar() ;;' – jabujavi
, если ваш прецедент отлаживается. Я рекомендую попробовать GDB – DevZer0