gpt4 book ai didi

c - 理解 C 中的结构

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

我刚开始学习 C。

我有以下代码:

#include <stdio.h> 

void func(struct Foo foo){
foo.x =1;
foo.array[3] =2;
}

int main(){
struct Foo lol;
lol.x = 55;
lol.array[3] = 67;

func(lol);
printf("lol.x is %d and lol.array[3] is %d\n", lol.x, lol.array[3]);

return 0;
}

编译时出现如下错误

structs.h:3:22: error: variable has incomplete type 'struct Foo'
void func(struct Foo foo){

structs.h:10:13: error: variable has incomplete type 'struct Foo'
struct Foo lol;

我查了一下,很多时候问题出在没有在 .h 文件中定义结构。我在单独的 .h 文件中定义了它,但没有帮助。我在 .c 文件的顶部定义了结构,同样的错误。

我把这个添加到文件的顶部:

typedef struct Foo{
int x;
int array[3];
}Foo;

谁能解释一下为什么会这样?

最佳答案

I looked it up and a lot of times the problem is in not defining structs in .h file. I defined it in a separate .h file, didnt help.

如果您在单独的 .h 文件中定义了结构,您应该在此代码中包含该文件。

#include <stdio.h>
#include "your_file.h"
....

来自编辑一些其他问题(UB)-

foo.array[3] =2;  //you can't access index 3, declaration in struct is  int array[3].

关于c - 理解 C 中的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32599154/

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