Что означает целочисленный суффикс J?
У меня есть следующий источник:
int main() { 000J; }
С gcc 4.8.4 он компилируется без ошибок. Я знаю, что есть суффиксы, такие как L или U, но я ничего не нашел о J.
Так что же делать?
2 ответов
Я получаю предупреждение:
мнимые константы являются расширением GNU
на J суффикс-это расширение GNU, которое заставляет литерал быть _Complex тип.
подробнее здесь: https://gcc.gnu.org/onlinedocs/gcc/Complex.html
как упоминал Зенит, это расширение GNU для написания воображаемых литералов. Я действительно хочу прокомментировать обоснование использования j для этой цели, поскольку ималлетт задается вопросом, но у меня недостаточно репутации, чтобы прокомментировать ответ Зенита. Я оставлю это как ответ в любом случае, поскольку это может быть полезно для других.
As этой ссылке объясняет, как i и j может использоваться для записи мнимых литералов с помощью этого расширения GNU. Причина i используется для это очевидно, но причина, почему j используется также это j обычно используется для обозначения мнимого блока в электротехнике и системах управления, чтобы предотвратить путаницу как i уже используется для обозначения электрического тока в этих контекстах.