gpt4 book ai didi

c - 结构在 C 中产生错误

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

我在尝试用 C 语言创建结构时遇到了奇怪的编译错误。

这是我的代码:

#define ALIGNMENT 8

/* rounds up to the nearest multiple of ALIGNMENT */
#define ALIGN(size) (((size) + (ALIGNMENT-1)) & ~0x7)

#define SIZE_T_SIZE (ALIGN(sizeof(size_t)))

#define BLK_HDR_SIZE ALIGN(sizeof(blockHdr))


typdef struct header {
size_t size;
blockHdr *next_p;
blockHdr *prior_p;
} blockHdr;

这是错误信息:

 mm.c:49:8: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘struct’
typdef struct header {
^
make: *** [mm.o] Error 1

我对这个错误感到困惑。是我的代码有问题,还是有更严重的问题?

最佳答案

您在 typdef 中有错字。接下来,您将收到有关 blockHdr 未定义的错误。

正确的定义是:

typedef struct header {
size_t size;
struct header *next_p;
struct header *prior_p;
} blockHdr;

您不能在 typedef 声明之前使用它。您必须使用实际的结构名称。

关于c - 结构在 C 中产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26923423/

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