Jahpeace 发表于 2023-11-10 22:03:51

C语言,不知道结构体应该如何声明,好像怎么声明都不太对

想用STM32F103写一个程序, 不知道结构体应该如何声明,好像怎么声明都不太对,如果是在dictionary.h文件中声明,在dictionary.c文件中直接用,不会报错但是会有图2这样的下划线,请问要怎么正确声明结构体才好。

还有一个问题是我想在主函数上面调用我的一个函数,这个函数TrieNode *CreateDict()(如图3)但是我规定这个函数的返回值是TrieNode这个结构体的指针,但是我在主函数调用的时候却识别出来这个函数的返回值是int,不知道是哪里除了问题,希望各位大佬可以解答一下。

一根油条 发表于 2023-11-11 08:39:45

定义结构体实际上是声明一种新的变量类型,一般变量类型的声明在*.h文件,变量的定义实体在*.c文件中

eric2013 发表于 2023-11-11 08:43:06

32bit芯片,指针变量本身就是32bit的,这个没问题。

regbbs 发表于 2023-11-11 09:01:24

typedef struct _xxxx
{
.....
}xxxx;
这里的xxxx不要一样,可以一个用下划线开头,或者直接
typedef struct
{
.....
}xxxx;
这样。

Jahpeace 发表于 2023-11-12 19:41:43

eric2013 发表于 2023-11-11 08:43
32bit芯片,指针变量本身就是32bit的,这个没问题。

是因为编译器识别我的地址值为int类型是吗?那么应该如何解决呢?

庄永 发表于 2023-11-12 20:44:05

Jahpeace 发表于 2023-11-12 19:41
是因为编译器识别我的地址值为int类型是吗?那么应该如何解决呢?

你自己也说了,你返回的是结构体指针,只要是指针,在32bit机器下,不管是什么类型的指针,都是32bit。感觉你对指针这块比较模糊,可以去看看指针的相关知识
页: [1]
查看完整版本: C语言,不知道结构体应该如何声明,好像怎么声明都不太对