c - 结构中的字符串
问题描述
我有一个问题,我找不到任何解决方案。在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}};
使其成为初始化。
也就是说.. 更常见的是创建一个 typedef 的结构,然后在需要的地方创建该类型的实例。这也将允许您使用初始化。喜欢:
#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;
}
推荐阅读
- jquery - 需要将 onblur 更改为 onclick 的说明
- java - 如何使用字符串参数 s 创建具有参数名称的新 LinkedList?
- nativescript - Nativescript,在 ios 委托中注入 Angular 服务
- javascript - 如何在没有 Jquery 的情况下使用 appendchild JavaScript 创建节点列表
- c# - UWP FolderPicker 授予对所有子路径的访问权限
- python - 三角形的对称线在一个角度
- spring-boot - How do I get a payload inside the java method while making a POST request to spring-boot?
- c# - 有没有办法用 lambda 简化这个函数?
- javascript - ab < 0,为什么在ab === undefined时不会抛出错误?
- javascript - Syled 组件背景图像 React