Как запустить препроцессор GCC, чтобы получить код после раскрытия макросов типа #define?

Вы можете просто сделать это. Вам не нужны регулярные выражения.

using Microsoft.VisualBasic.CompilerServices;

if (Operators.LikeString("pos123.txt", "pos?23.*", CompareMethod.Text))
{
  Console.WriteLine("Filename matches pattern");
}

Или, в VB.Net,

If "pos123.txt" Like "pos?23.*" Then
  Console.WriteLine("Filename matches pattern")
End If

В C # вы можете смоделировать это с помощью метода расширения. Это не будет похоже на VB Like, но это будет ... очень круто.

25
задан Peter Mortensen 5 March 2017 в 08:52
поделиться

1 ответ

Хотя опция -E будет выполнять всю предварительную обработку, она также производит очень «сырой» вывод, который может быть не тем, что вы хотите (в зависимости от того, что вы хотите).

Если вам нужно отладить расширение макроса, которое не выполняет то, что вы ожидаете, E - хороший путь. Если вы просто хотите отфильтровать «неактивный код», но оставить оставшийся код в более или менее оригинальной форме, вы можете посмотреть на ответы на следующий вопрос переполнения стека:

14
ответ дан 28 November 2019 в 21:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: