gpt4 book ai didi

c - 两种不同的输出

转载 作者:太空狗 更新时间:2023-10-29 15:12:39 25 4
gpt4 key购买 nike

 #include<stdio.h>

int main(void)
{
static int i=i++, j=j++, k=k++;
printf("i = %d j = %d k = %d", i, j, k);
return 0;
}

Turbo C 4.5 中的输出:

i = 0 j = 0 k = 0

在 gcc 中我得到了错误:

Initializer element is not constant

哪个在逻辑上是正确的?我有点困惑..

最佳答案

标准关于初始化(6.7.8)的说法:

4   All the expressions in an initializer for an object that has static storage duration shall be constant expressions or string literals.

(那是来自 C99,但 C89 说的几乎完全一样。)

所以看起来 GCC 比 15 年前的废弃软件更正确。 (谁会喜欢它?)

关于c - 两种不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3906375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com