gpt4 book ai didi

c - 如何创建常量结构数组?

转载 作者:行者123 更新时间:2023-11-30 14:53:21 24 4
gpt4 key购买 nike

我正在寻找一种创建结构常量数组的方法。我尝试了这个(它在头文件中):

//#pragma once
#ifndef __CANDY_DB_H__
#define __CANDY_DB_H__

#include <stdbool.h>
#include <string.h>

typedef struct Candy {
char Name[16];
bool Vegan;
}Candies;

const Candies first = {"Apple",true};

const Candies second = ("Popcorn", true);

const Candies CandiesArray[2] = { first, second };

#endif //__CANDY_DB_H__

但好像是错误的。

最好的方法是什么?

最佳答案

问题在于 CandiesArray 是在文件范围(在任何函数之外)声明的,这意味着它表示具有静态存储持续时间的对象,必须通过常量表达式来初始化/em>。与 C++ 不同,尽管有 const 限定符,但 C 中的 first 不是常量表达式。

为了解决这种情况,您可以将元素直接放入初始化程序中:

const Candies CandiesArray[2] = {
{"Apple", true},
{"Popcorn", true}
};

关于c - 如何创建常量结构数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47238868/

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