打印

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

[复制链接]
678|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenho|  楼主 | 2019-12-18 19:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,,关于程序开发中的结构体的问题的,应用非常多的,也方便了程序员对统一类型的属性的管理,,不过,,说到这里的,还是提一个小小的问题——什么是结构体?何种情况下应用结构体解决比较合适?

使用特权

评论回复
沙发
llia| | 2019-12-18 19:13 | 只看该作者
这个,,关于结构体的定义的——结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。

使用特权

评论回复
板凳
wangzsa| | 2019-12-18 19:16 | 只看该作者
结构体定义:




第一种:只有结构体定义


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

使用特权

评论回复
地板
gongche| | 2019-12-18 19:18 | 只看该作者

第二种:附加该结构体类型的“结构体变量”的初始化的结构体定义

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

使用特权

评论回复
5
wenfen| | 2019-12-18 19:21 | 只看该作者
这两种只是常见的定义写法的,,还有其他类型的写法的,这里不再做赘述的。

使用特权

评论回复
6
zwll| | 2019-12-18 19:27 | 只看该作者
结构体的正如楼主所说,,应用非常广泛的,可以很方便程序的开发设计。

使用特权

评论回复
7
dingy| | 2019-12-18 19:30 | 只看该作者
结构体。。我学到了一种用法。
typedef struct
{
    变量。。。。。。
}stuff;
后面申明结构体的时候就直接stuff申明,还有没有其他的用法,求大神补充。

使用特权

评论回复
8
houcs| | 2019-12-18 19:32 | 只看该作者
结构体,通俗地讲就像打包封装,把一些有共同特征比如同属于某一类事物的属性的变量封装在内部,通过一定的方法访问修改内部变量。

使用特权

评论回复
9
chenjunt| | 2019-12-18 19:35 | 只看该作者

这个是C++中的面向对象设计的思路有点像。结构体可以封装变量、函数,就像C++中的,行为可以封装进去。
例如 struct A {
    char m;
    char n;
   (void*)funcA;
}

使用特权

评论回复
10
xxmmi| | 2019-12-18 19:38 | 只看该作者
看看面向对象的方法,容易理解了就......

使用特权

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

使用特权

评论回复
12
llia| | 2019-12-18 19:44 | 只看该作者
一般使用的时候是怎么方便怎么用,不过有一些隐藏的特性。

使用特权

评论回复
13
wangzsa| | 2019-12-18 19:48 | 只看该作者
比如,关闭地址对齐可以节省空间,打开地址对齐可以提高程序速度。这在某些情况下是需要注意的,通常配合sizeof和指针使用更佳。

使用特权

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

本版积分规则

748

主题

9853

帖子

5

粉丝