嵌入式第五课-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语言结构体的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式第五课-c语言结构体

【嵌入式C】在Keil中结构体的字节对齐

嵌入式 Linux C语言——结构体

C语言 | 结构体内存对齐

嵌入式 C 结构体内存对齐

C语言嵌入式项目中一些常用知识及技巧:第一弹