Проблема с макросом, как вы показываете, заключается в том, как работает процесс компиляции.
Если вы посмотрите, например, эту ссылку на фазу перевода C , вы увидите продолжение строкипроисходит на этапе 2, затем комментарии заменяются пробелом на этапе 3, и, наконец, предварительная обработка происходит на этапе 4.
То есть после этапа 2 получается
#define Snippet // This is my snippet a= b+c;
Затем послепри замене комментариев на этапе 3 определение макроса становится пустым.
Решение для комментариев заключается в использовании блочных комментариев с использованием /*
и */
.
Не существует решения для продолжения строки.проблема, как это должно работать.