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