gpt4 book ai didi

c - 理解结构体的概念

转载 作者:行者123 更新时间:2023-11-30 21:16:26 26 4
gpt4 key购买 nike

我想知道两者有什么区别

int a;

struct node{
int a;
};

struct node b;

它们是一样的吗?

最佳答案

不,它们不一样。 ab 上的语言允许的操作是不同的,因为它们的类型不同。当它们包含相同的位模式时,这些位模式的解释可能不同。

编译器可能会采用不同的路径从函数返回 intstruct 节点 或将它们作为函数参数传递。

本质上,ab.a 具有相同的行为。编译器有时可能会选择根据成员类型来优化单个成员结构。

差异
1.编译时:a的类型和b的类型不同
2. 编译时:a = 42(正常),b = 42(错误)
3. 运行时:编译器在将a和b复制到相同类型的不同变量时可以选择使用不同的策略。4.section 6.7.2.1 in the C99 standard表示结构对象内可能有未命名的填充,但不在其开头。,这意味着 sizeof a 允许不等于b 的大小

额外说明
几乎总是不需要单个成员结构,除非
1、其他成员有条件编译出局。 (保持代码易于管理)
2. 当您计划将数组作为函数参数传递时,请从函数返回数组或使用赋值运算符复制数组。
3.限制操作。 [例如,您不希望添加、减去 emp id 等,但分配是可以的]

关于c - 理解结构体的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27379677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com