gpt4 book ai didi

c - 结构中的字符串

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

我有一个问题,我找不到任何解决方案。在 example.h 中,我通过以下方式定义结构:

#define TOTAL_NUMBER 3

struct{
float FirstValue[TOTAL_NUMBER];
float LastValue[TOTAL_NUMBER];

} VALUES;

我想像这样在 example.c 中使用。

VALUES.FirstValue={1,2,3} 

但是我有一个错误。我如何在 example.c 中这样使用?

VALUES.FirstValue={1,2,3} 

最佳答案

嗯,你不能。

一般语法

 SomeArrayVariable = {1,2,3};

仅作为初始化有效 - 而不是作为赋值。

例子:

int arr[3];
arr = {1, 2, 3}; // Error - invalid assignment

int arr[3] = {1, 2, 3}; // Fine - valid initialization

相反你可以这样做:

VALUES.FirstValue[0] = 1;
VALUES.FirstValue[1] = 2;
VALUES.FirstValue[2] = 3;

或者你可以这样做:

struct{
float FirstValue[TOTAL_NUMBER];
float LastValue[TOTAL_NUMBER];

} VALUES = {{1, 2, 3}, {0, 0, 0}};

使其成为初始化。

就是说.. 更常见的做法是创建一个类型定义的结构,然后在您需要的地方创建该类型的实例。这也将允许您使用初始化。喜欢:

#include <stdio.h>

#define TOTAL_NUMBER 3

typedef struct{
float FirstValue[TOTAL_NUMBER];
float LastValue[TOTAL_NUMBER];
} values_t;

int main(void) {
values_t values = {{1,2,3}, {0, 0, 0}};
printf("%f\n", values.FirstValue[1]);
printf("%f\n", values.LastValue[1]);
return 0;
}

关于c - 结构中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58406493/

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