嵌入式第五课-c语言结构体
Posted Soaring2020
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式第五课-c语言结构体相关的知识,希望对你有一定的参考价值。
1结构体数组
#include <stdio.h>
#define ARRYA_SIZE(a) (sizeof(a)/sizeof(a[0]))
typedef struct student{
char name[50];
int age;
int sex;
}stu_t;
int main(void)
{
stu_t info[] = {
{
.sex = 18,
.age = 18,
.name = "hello"
},
{
.sex = 12,
.age = 19,
.name = "world!"
}
};
for(int i =0 ;i<ARRYA_SIZE(info);i++)
{
printf("%s %d %d \\r\\n",info[i].name,info[i].age,info[i].sex);
}
return 0;
}
2j结构体函数指针
#include <stdio.h>
typedef struct student stu_t;
typedef void(*_pfunc_t)(stu_t *);
#define ARRYA_SIZE(a) (sizeof(a)/sizeof(a[0]))
typedef struct student{
char name[50];
int age;
int sex;
_pfunc_t pfunc;
}stu_t;
void show(stu_t *stu);
void show2(void);
int main(void)
{
stu_t info[] = {
{
.sex = 18,
.age = 18,
.name = "hello",
.pfunc = show
},
{
.sex = 12,
.age = 19,
.name = "world!",
.pfunc = show2
}
};
printf("info 0 show:");
info[0].pfunc(&(info[0]));
printf("info 1 show2:");
info[1].pfunc(&(info[0]));
printf("for output:");
for(int i =0 ;i<ARRYA_SIZE(info);i++)
{
printf("%s %d %d \\r\\n",info[i].name,info[i].age,info[i].sex);
}
return 0;
}
void show(stu_t *stu)
{
printf("%s %d %d \\r\\n",stu->name,stu->age,stu->sex);
}
void show2(void)
{
printf("hello world!\\r\\n ");
}
执行结果:
嵌入式第四课—C语言文件操作 :https://blog.csdn.net/qq_21919455/article/details/117259838
嵌入式第六课——数据结构和算法-栈与循环队列 https://blog.csdn.net/qq_21919455/article/details/117280432
以上是关于嵌入式第五课-c语言结构体的主要内容,如果未能解决你的问题,请参考以下文章