gpt4 book ai didi

c - 为什么我在用于指定数组大小的 const int 上得到不同的编译器行为?

转载 作者:太空宇宙 更新时间:2023-11-04 01:51:13 24 4
gpt4 key购买 nike

<分区>

我有以下代码:

static const int constant_int_value = 10;
static int my_array[constant_int_value];

int main(void)
{
my_array[0] = 10;
}

clang 发出警告,但编译它:

clang -Weverything -std=c11 array_index.c  
array_index.c:4:20: warning: variable length array used [-Wvla]
static int my_array[constant_int_value];
^
array_index.c:4:12: warning: size of static array must be an integer constant expression [-Wpedantic]
static int my_array[constant_int_value];
^
2 warnings generated.

看来我使用的是整数常量,所以我不明白警告。

gcc 不编译代码:

gcc -Wall -Wextra -Wpedantic -std=c11 array_index.c
array_index.c:4:12: error: variably modified ‘my_array’ at file scope
static int my_array[constant_int_value];

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