我想在 Flash 中创建一个常量结构。此结构将由各种大小的元素组成,包括字符串数组、短裤、字节等。字符串应以空值终止,但可能不会完全填满为其分配的数组存储区域。下面显示的代码是我的,但是编译器给出了以下错误。
../Source/flash_constants.h:1025:33: error: expected ':', ',', ';', '}' or '__attribute__' before '=' token
const unsigned char Reg00[32] = "My String 1";
const unsigned char Reg00[32] = "My String 1";
是结构定义外的有效语句,但在结构定义内失败。
谢谢。
struct
{
const unsigned char Reg00[32] = "My String 1";
const unsigned char Reg01[32] = "My String 2";
const unsigned char Reg02[32] = "My String 3";
const unsigned short Reg03 = 0;
const unsigned short Reg04 = 0;
} ModBusIDReg;
最佳答案
您不能在 C 中对结构进行内联初始化。
需要定义结构体,定义变量,然后初始化变量:
struct
{
const unsigned char Reg00[32];
const unsigned char Reg01[32];
const unsigned char Reg02[32];
const unsigned short Reg03;
const unsigned short Reg04;
} const ModBusIDReg = {
"My String 1",
"My String 2",
"My String 3",
0,
0
};
关于c - 初始化常量结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50240479/