Что означает целочисленный суффикс J?

У меня есть следующий источник:

int main() { 000J; }

С gcc 4.8.4 он компилируется без ошибок.
Я знаю, что есть суффиксы типа L или U, но я ничего не нашел в J.

Так что же это делает?

62

Решение

Я получаю предупреждение:

Мнимые константы являются расширением GNU

J Суффикс — это расширение GNU, которое приводит к тому, что литерал _Complex тип.

Больше информации здесь: https://gcc.gnu.org/onlinedocs/gcc/Complex.html

71

Другие решения

Как уже упоминалось в зените, это расширение GNU для написания мнимых литералов. Я действительно хочу прокомментировать обоснование использования j для этого, как интересно, ималлету, но у меня недостаточно репутации, чтобы комментировать ответ Зенита. Я все равно оставлю это как ответ, так как это может быть полезно для других.

Как эта ссылка объясняет, как i а также j может использоваться для написания мнимых литералов с использованием этого расширения GNU. Причина по которой i используется для этого, очевидно, но причина, почему j используется также в том, что j обычно используется для обозначения мнимой единицы в электротехнике и разработке систем управления для предотвращения путаницы как i уже используется для обозначения электрического тока в этих контекстах.

13

По вопросам рекламы [email protected]