相信好多初学stm32的宝宝们和刚开始开发的小伙伴都会接触到typedef,新手对于typedef的用法陌生,尤其是typedef用于结构体的定义更觉得自己好像学了假的C语言,尤其是typedef struct所以笔者现在总结一个大家比较陌生的用法,直接给大家展示一下以下两段代码示例及编译运行的情况:
#include<stdio.h>
typedef struct tube{
int tube0;
int tube1;
int tube2;
int tube3;
int tube4;
}TM1637Tube_ts;
TM1637Tube_ts sData;//对于sData,相信大家到这里应该就明白了这个的用法;
int main()
{
TM1637Tube_ts sData = {11,2,3,4,5};
printf("%d",sData.tube0);
return 0;
}
以下是本段代码编译运行结果:
#include<stdio.h>
typedef struct {
int tube0;
int tube1;
int tube2;
int tube3;
int tube4;
}TM1637Tube_ts;
TM1637Tube_ts sData;
int main()
{
TM1637Tube_ts sData = {11,2,3,4,5};
printf("%d",sData.tube0);
return 0;
}
以下是本段代码编译运行结果:
两段代码运行结果一样;但我们可见第二种更方便;其实这两种都方便,因为他们都用了typedef关键字,后面就省去了struct的重复输入。但是笔者还要跟大家说明一下:代码中的sData不能直接对其的结构体成员直接赋值,要把前面的TM1637Tube_ts加上去;TM1637Tube_ts就相当于struct tube;相信读者到这里应该能明白typedef的这个用法,如有还不理解的地方,可以自己敲敲代码实践一下;其他的用法其实比较容易理解,笔者就不再做更多说明,谢谢您的支持,希望能帮到您。