gpt4 book ai didi

c - 确保在编译时初始化固定大小数组的所有元素

转载 作者:太空狗 更新时间:2023-10-29 15:23:31 26 4
gpt4 key购买 nike

对于指定大小的数组,如果我在初始化中放置了太多元素,编译器会警告我:

int array[3] = {1,2,3,4}; // Warning

但是,当然,如果我放置的元素太少,它不会这样做(它只会用 0 填充它们):

int array[3] = {1,2}; //  OK (no warning)

然而,我必须确保在编译时我在 N 元素数组(它是一个函数指针数组)的初始化中准确指定了 N 个元素。

如果我指定的元素太少,我可以让编译器警告我吗?

最佳答案

首先使用参数定义结构,但不指定大小:

int array[] = { 1 , 2 , 3 };

然后使用_Static_assert 简单地检查创建的数组的大小是否与 N 相同:

_Static_assert( sizeof( array ) / sizeof( array[0] ) == N , "problem with array" );

关于c - 确保在编译时初始化固定大小数组的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39679531/

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