gpt4 book ai didi

c - 如何预定义结构数组

转载 作者:太空宇宙 更新时间:2023-11-04 00:40:43 25 4
gpt4 key购买 nike

我的 c 非常古怪,我什至不是 100% 如何提出这个问题,所以请耐心等待。

基本上我正在尝试做的是创建一个笔记结构的查找表。

我知道我想要的结构,并且我有我想要放入其中的所有数据。

那么我怎样才能:

A) 创建一个 notes_type_t 数组并用我的所有数据填充它。

--- 或 ---

B) 用所有数据定义一个宏

--- 或 ---

C) 更好的方法

typedef struct 
{
float freq;
int midi;
char[2] note;


}notes_type_t


{
16.4, 12, C
17.3, 13, C#
18.4, 14, D
19.4, 15, D#
20.6, 16, E
21.8, 17, F
23.1, 18, F#
24.5, 19, G
26, 20, G#
27.5, 21, A
29.1, 22, A#
30.9, 23, B
32.7, 24, C
34.6, 25, C#
36.7, 26, D
38.9, 27, D#
41.2, 28, E
43.7, 29, F
46.2, 30, F#
49, 31, G
51.9, 32, G#
}

最佳答案

可能是下面这样的东西。假设在notes.h中:

typedef struct
{
float freq;
int midi;
char note[3];
}notes_type_t;

#if defined( DEFINE_NOTES )
notes_type_t notes[] = {
{16.4, 12, "C"},
{17.3, 13, "D#"},
...
};
#else
extern notes_type_t notes[];
#endif

然后在一个源文件中,包含带有 #define 的 notes.h,如图所示,以实际定义数组。其他源文件将只有 #include 并获取数组的 extern 声明。

#define DEFINE_NOTES
#include "notes.h"

请注意,note 元素需要包含 3 个字符(以便为空终止符留出空间)。

关于c - 如何预定义结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9434900/

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