美文网首页每天一点C语言程序员
C语言结构体的全面应用

C语言结构体的全面应用

作者: 红木娄 | 来源:发表于2017-04-27 10:38 被阅读183次

本文为C语言结构的应用总结,C语言没有类的概念,但可以通过结构体构建一个类似类的操作概念。下文是使用的场景代码,由于水平有限,错误之处请各位大神指出。在此抛砖引玉,希望做嵌入式的的人能提供更多的应用的典型案例。

#include#include/*结构体定义 */

//只有结构类型的定义

struct stuff

{

            char job[20];

            int  age;

            float height;

};

//含有结构体类型的结构体变量初始化定义

struct stuff1

{

         char job[20];

          int  age;

          float height;

}Hu;

//struct stuff1  Hu //就相当于这样子

// 结构体不能再用来定义同类型的结构体变量,一锤子买卖;

struct

{

     char job[20];

     int  age;

    float height;

}Hu1;//这种类型的结构体变量只能有这么一个,不能去定义其他的

/*结构体别名声明 */

typedef struct Stu

{

        char job[20];

         int  age;

         float height;

}Stuff,*PtrStuff;

Stuff      Sam;//等于 struct Stu Sam;

PtrStuff  pSam;//等于 struct Stu *Sam;

/*结构体与其他类型 */

typedef struct arraychange

{

            int cnt;

           char pc[0];

}arraychange;//pc数组只能放在最后,不能调换位置;柔性数组,少用;

struct check

{

        union

        {

              char a;

         };

         int i;

}CheckSystem; //系统内存大小端测试,结构体与联合体结合

struct structureA

{

         struct structureB

        {

               int c;

          }b;  //必须要有实体才能够在后面使用struct structureB bb;

        struct structureB bb;

}a;//结构体中含有结构体;

//函数可以用结构体元素,结构体,结构体指针做参数;用元素与普通没什么区别,用结构体则拷贝副本,指针是唯一的;函数可以返回结构体,使用指针的效率高

void func1(int par);        //结构体元素

Stuff func2(Stuff par);      //结构体,返回结构体

void func3(PtrStuff par); //结构体指针

void print(Stuff par);

//结构体含有函数指针做元素,这样就可以实现类似面向对象的类封装

int fun1(int age,int weight);

void fun2(int age,int weight);

struct Fun

{

            int age;

            int weight;

            int (*pfun1)(int age,int weight);  //函数还有一个int返回值,两个int参数

           void (*pfun2)(int age,int weight);  //函数没有返回值,两个int参数

};

int main(void)

{

          /*结构体作为函数参数 */

          Stuff    test,tmptest;

           PtrStuff  ptest=&test;

          /*结构体含有函数指针*/

           struct Fun myfun={10,45,fun1,fun2};

           struct Fun *ptrmyfun=&myfun;

          int age=22,weight=60,temp=0;

           /*结构体作为函数参数 */

           strcpy(test.job,"manager");

            test.age=25;

           test.height=1.65;

          func1(test.age);

          tmptest=func2(test);

          print(tmptest);

          func3(ptest);

           print(test);

         /*结构体含有函数指针*/

          temp=myfun.pfun1(age,weight); //成员调用函数

          printf("temp %d\n",temp);

            myfun.pfun2(age,weight);  //成员调用函数

          myfun.age=80;

           myfun.weight=65;

            temp=ptrmyfun->pfun1(myfun.age,myfun.weight); //指针调用函数

         printf("temp %d\n",temp);

         ptrmyfun->pfun2(myfun.age,myfun.weight);    //指针调用函数

        return 0;

}

void print(Stuff par)

{

printf("your job is:%s\n",par.job);

printf("your age is:%d\n",par.age);

printf("your height is:%f\n",par.height);

}

void func1(int par)

{

printf("your age is:%d\n",par);

}

Stuff func2(Stuff par)

{

strcpy(par.job,"Engineer");

par.age=30;

par.height=1.80;

return par;

}

void func3(PtrStuff par)

{

strcpy(par->job,"Programmer");

par->age=19;

par->height=170;

}

int fun1(int age,int weight)

{

int temp=0;

temp=age+weight;

return temp;

}

void fun2(int age,int weight)

{

printf("your age is:%d\n",age);

printf("your weight is:%d\n",weight);

}

相关文章

  • C语言结构体的全面应用

    本文为C语言结构的应用总结,C语言没有类的概念,但可以通过结构体构建一个类似类的操作概念。下文是使用的场景代码,由...

  • C语言和OC的结构体(struct)

    Struct(结构体) 1.结构体定义 2.结构体变量 3.结构体数组 4.C语言结构体指针 5.C语言共用体 6...

  • C语言结构体用法很多,坑也很多

    C语言可谓是编程界的传奇语言,历经几 十 年,依然排名前列。 本文主要说的是C语言中的结构体,结构体是C语言中重要...

  • 12-Go语言结构体

    结构体 结构体的基本概念 什么是结构体Go语言中的结构体几乎和C语言中的结构体一模一样都需要先定义结构体类型, 再...

  • C语言学习笔记-结构体占用内存大小的计算

    引言 结构体在C语言中虽然经常使用,但是怎么计算一个结构体占用多大的内存,很多C语言的新手都没注意过,其实C语言的...

  • C语言结构体

    结构体 本文介绍C语言结构体,struct 在C++中功能相对C较多,相当于类,这里暂时不讨论,本文单独讨论C语言...

  • c语言中的结构体

    结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。 一、结构体的形态 C源程序(struct.c):...

  • 闲聊C语言结构体

    结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。 一、结构体的形态 C源程序(struct.c):...

  • 结构体与指针

    1.1 Linux C语言结构体 简介:本课程深入的讲解了C语言中,预处理是怎么回事,结构体和公用体又是如何使用及...

  • 嵌入式学习笔记19.11.25

    c语言结构体 结构体一般定义全局变量 struct stu{//struct 定义结构体 stu 结构体名称 in...

网友评论

  • ddc4d7869897:现在看的不是太懂,希望工作以后回过头来看的时候能像看说明书一样。
    红木娄: @刘玉文 一定会的

本文标题:C语言结构体的全面应用

本文链接:https://www.haomeiwen.com/subject/hsegzttx.html