63

我有以下来源:

int main() { 000J; }

使用 gcc 4.8.4 编译时没有错误。我知道有像 L 或 U 这样的后缀,但我没有找到任何关于 J 的信息。

那么它有什么作用呢?

4

2 回答 2

73

我收到警告:

虚数常量是 GNU 扩展

J后缀是 GNU 扩展,它使文字成为一种类型_Complex

更多信息在这里:https ://gcc.gnu.org/onlinedocs/gcc/Complex.html

于 2015-11-05T16:12:52.063 回答
15

正如 zenith 所提到的,这是用于编写虚构文字的 GNU 扩展。我真的很想评论j为此目的使用的理由,因为 imallett 想知道,但我没有足够的声誉来评论 zenith 的答案。无论如何,我都会将此作为答案,因为它可能对其他人有帮助。

正如此链接所解释的,两者ij都可用于使用此 GNU 扩展编写虚构文字。i用于此的原因是显而易见的,但也使用它的原因是j通常j用于表示电气工程和控制系统工程中的虚数单位,以防止混淆,因为i在这些上下文中已经用于表示电流。

于 2015-11-09T19:53:31.130 回答