私は次のソースを持っています:
int main() { 000J; }
Gcc 4.8.4では、エラーなしでコンパイルされます。 LやUなどのサフィックスがあることは知っていますが、Jについては何も見つかりませんでした。
それでそれは何をしますか?
警告が表示されます:
虚数定数はGNU拡張です
J
サフィックスはGNU拡張であり、リテラルは_Complex
タイプ。
天頂が述べたように、これはGNU架空のリテラルを書くための拡張です。私はこの目的のためにj
を使用する根拠についてコメントしたいと思います。天頂の答えについてコメントするのに十分な評判があります。他の人の役に立つかもしれないので、とにかくこれは答えとして残しておきます。
このリンク で説明されているように、i
とj
の両方を使用して、このGNU拡張を使用して架空のリテラルを書き込むことができます。理由は次のとおりです。これにはi
が使用されていることは明らかですが、j
も使用される理由は、j
が電気工学および制御システム工学の虚数単位を表すために一般的に使用されるためですi
は、これらのコンテキストで電流を表すためにすでに使用されているため、混乱を防ぐためです。