web-dev-qa-db-ja.com

整数の接尾辞Jはどういう意味ですか?

私は次のソースを持っています:

int main() { 000J; }

Gcc 4.8.4では、エラーなしでコンパイルされます。 LやUなどのサフィックスがあることは知っていますが、Jについては何も見つかりませんでした。

それでそれは何をしますか?

62
happyMOOyear

警告が表示されます:

虚数定数はGNU拡張です

JサフィックスはGNU拡張であり、リテラルは_Complexタイプ。

詳細はこちら: https://gcc.gnu.org/onlinedocs/gcc/Complex.html

71
emlai

天頂が述べたように、これはGNU架空のリテラルを書くための拡張です。私はこの目的のためにjを使用する根拠についてコメントしたいと思います。天頂の答えについてコメントするのに十分な評判があります。他の人の役に立つかもしれないので、とにかくこれは答えとして残しておきます。

このリンク で説明されているように、ijの両方を使用して、このGNU拡張を使用して架空のリテラルを書き込むことができます。理由は次のとおりです。これにはiが使用されていることは明らかですが、jも使用される理由は、jが電気工学および制御システム工学の虚数単位を表すために一般的に使用されるためですiは、これらのコンテキストで電流を表すためにすでに使用されているため、混乱を防ぐためです。

13
Jordan Melo