c语言结构体定义应用与讨论

[复制链接]
1025|11
手机看帖
扫描二维码
随时随地手机跟帖
chuntian2016|  楼主 | 2017-2-27 21:21 | 显示全部楼层 |阅读模式
如题,,关于程序开发中的结构体的问题的,应用非常多的,也方便了程序员对统一类型的属性的管理,,不过,,说到这里的,还是提一个小小的问题——什么是结构体?何种情况下应用结构体解决比较合适?
chuntian2016|  楼主 | 2017-2-27 21:22 | 显示全部楼层
这个,,关于结构体的定义的——结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。

使用特权

评论回复
chuntian2016|  楼主 | 2017-2-27 21:44 | 显示全部楼层
结构体定义:




第一种:只有结构体定义


struct stuff{
        char job[20];
        int age;
        float height;
};

使用特权

评论回复
chuntian2016|  楼主 | 2017-2-27 21:45 | 显示全部楼层
第二种:附加该结构体类型的“结构体变量”的初始化的结构体定义

//直接带变量名Huqinwei
struct stuff{
        char job[20];
        int age;
        float height;
}Huqinwei;

使用特权

评论回复
chuntian2016|  楼主 | 2017-2-27 21:46 | 显示全部楼层
这两种只是常见的定义写法的,,还有其他类型的写法的,这里不再做赘述的。

使用特权

评论回复
vibra2016| | 2017-2-27 22:41 | 显示全部楼层
结构体的正如楼主所说,,应用非常广泛的,可以很方便程序的开发设计。

使用特权

评论回复
qq553605454| | 2017-2-28 09:13 | 显示全部楼层
结构体。。我学到了一种用法。
typedef struct
{
    变量。。。。。。
}stuff;
后面申明结构体的时候就直接stuff申明,还有没有其他的用法,求大神补充。

使用特权

评论回复
阳光豆苗| | 2017-2-28 09:40 | 显示全部楼层
结构体,通俗地讲就像打包封装,把一些有共同特征比如同属于某一类事物的属性的变量封装在内部,通过一定的方法访问修改内部变量。

使用特权

评论回复
hugo0chen| | 2017-2-28 10:16 | 显示全部楼层
这个是C++中的面向对象设计的思路有点像。结构体可以封装变量、函数,就像C++中的,行为可以封装进去。
例如 struct A {
    char m;
    char n;
   (void*)funcA;
}

使用特权

评论回复
mini1986| | 2017-2-28 10:36 | 显示全部楼层
看看面向对象的方法,容易理解了就......

使用特权

评论回复
w522930954| | 2017-2-28 10:46 | 显示全部楼层
结构体用的好可以当c++的class用,
最差也能将不同类型的数据绑定在一段连续的内存,当对一片不同类型的数据批量操作的时候,结构体提供了很大的便利;
结构体封装成链表形式,即使不同的内存块也能用链表链接起来,为各种C算法和内存管理算法等等提供语言工具的便利;
程序代码编写数据的移动无非就是内存的copy,包括函数等各个地址的访问也都是建立在内存的基础上,当结构体把所有不相干的内存连为一个整体,算法就有了统一性,操作就有了一致性,为程序编写提供了大大的便利,也体现出来C语言相对于汇编这些语言的优越性;

使用特权

评论回复
birdSTM32| | 2017-2-28 14:27 | 显示全部楼层
一般使用的时候是怎么方便怎么用,不过有一些隐藏的特性。
比如,关闭地址对齐可以节省空间,打开地址对齐可以提高程序速度。这在某些情况下是需要注意的,通常配合sizeof和指针使用更佳。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

1485

帖子

1

粉丝