硬汉嵌入式论坛

 找回密码
 立即注册
查看: 625|回复: 5
收起左侧

[技术讨论] C语言,不知道结构体应该如何声明,好像怎么声明都不太对

[复制链接]

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2023-11-10 22:03:51 | 显示全部楼层 |阅读模式
想用STM32F103写一个程序, 不知道结构体应该如何声明,好像怎么声明都不太对,如果是在dictionary.h文件中声明,在dictionary.c文件中直接用,不会报错但是会有图2这样的下划线,请问要怎么正确声明结构体才好。

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

图1

图1

图2

图2

图3

图3

主函数的提示是这样的

主函数的提示是这样的
回复

使用道具 举报

2

主题

9

回帖

15

积分

新手上路

积分
15
发表于 2023-11-11 08:39:45 | 显示全部楼层
定义结构体实际上是声明一种新的变量类型,一般变量类型的声明在*.h文件,变量的定义实体在*.c文件中
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2023-11-11 08:43:06 | 显示全部楼层

回帖奖励 +4 个金币

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

回复

使用道具 举报

0

主题

215

回帖

215

积分

高级会员

积分
215
发表于 2023-11-11 09:01:24 | 显示全部楼层
typedef struct _xxxx
{
.....
}xxxx;
这里的xxxx不要一样,可以一个用下划线开头,或者直接
typedef struct
{
.....
}xxxx;
这样。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2023-11-12 19:41:43 | 显示全部楼层
eric2013 发表于 2023-11-11 08:43
32bit芯片,指针变量本身就是32bit的,这个没问题。

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

使用道具 举报

75

主题

684

回帖

909

积分

金牌会员

积分
909
发表于 2023-11-12 20:44:05 | 显示全部楼层
Jahpeace 发表于 2023-11-12 19:41
是因为编译器识别我的地址值为int类型是吗?那么应该如何解决呢?

你自己也说了,你返回的是结构体指针,只要是指针,在32bit机器下,不管是什么类型的指针,都是32bit。感觉你对指针这块比较模糊,可以去看看指针的相关知识
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 06:49 , Processed in 0.226089 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表