struct相关内容

Swift 常量:结构或枚举

我不确定两者中的哪一个更适合定义常量.一个结构体或一个枚举.每次我使用它时都会复制一个结构吗?在我看来,当我想到一个带有 static let 常量的结构时,它会一直复制是没有意义的.但如果它不会被复制,那么我拿什么都无所谓? 选择结构体或枚举有什么好处? Francisco 说使用 Struct. Ray Wenderlich 说使用 Enum 的.但我缺乏理由. 解决方 ..
发布时间:2021-12-02 16:10:51 移动开发

将结构保存到用户默认值

我有一个要保存到 UserDefaults 的结构.这是我的结构 struct Song {变量名称:字符串var 艺术家:字符串}var 歌曲:[歌曲] = [歌曲(标题:“标题1",艺术家“艺术家1"),歌曲(标题:“标题2",艺术家“艺术家2"),歌曲(标题:“标题3",艺术家“艺术家3"),] 在另一个 ViewController 中,我有一个 UIButton 附加到这个结构中 ..
发布时间:2021-12-02 16:04:40 移动开发

为什么选择结构而不是类?

玩 Swift,来自 Java 背景,为什么要选择 Struct 而不是 Class?似乎它们是同一回事,结构提供较少的功能.为什么选择它? 解决方案 根据非常流行的 WWDC 2015 演讲 Protocol Oriented Programming in Swift (视频,转录),Swift 提供了许多特性,使结构在许多情况下比类更好. 如果结构相对较小且可复制,则结构更可取, ..
发布时间:2021-12-02 15:22:12 移动开发

为什么我不能为 .NET 中的结构定义默认构造函数?

在 .NET 中,值类型 (C# struct) 不能有没有参数的构造函数.根据这篇文章,这是 CLI 规范规定的.发生的情况是,对于每个值类型,都会创建一个默认构造函数(由编译器?),它将所有成员初始化为零(或 null). 为什么不允许定义这样的默认构造函数? 一个微不足道的用途是用于有理数: public struct Rational {私有长分子;私人长分母;公共理性(lo ..
发布时间:2021-12-02 13:41:43 C#/.NET

.NET 中的 struct 和 class 有什么区别?

.NET 中结构和类的区别是什么? 解决方案 在.NET中,有两类类型,引用类型和值类型.> 结构是值类型,类是引用类型. 一般区别在于引用类型存在于堆中,而值类型存在于内联中,也就是说,无论您定义了变量还是字段,都可以. 包含值类型的变量包含整个值类型值.对于结构体,这意味着变量包含整个结构体及其所有字段. 包含引用类型的变量包含一个指针,或引用到实际值所在的内存中的 ..
发布时间:2021-12-02 13:18:43 C#/.NET

结构和联合之间的区别

有什么好的例子可以说明 struct 和 union 之间的区别吗?基本上我知道 struct 使用其成员的所有内存,而 union 使用最大的成员内存空间.是否还有其他操作系统级别的差异? 解决方案 对于联合,您应该只使用其中一个元素,因为它们都存储在同一位置.这在您想要存储可能是多种类型之一的内容时非常有用.另一方面,结构体的每个元素都有一个单独的内存位置,它们都可以同时使用. ..
发布时间:2021-12-02 08:30:33 其他开发

当我尝试索引除零以外的任何内容时,指向越界索引的结构指针(?)

我试图通过用我初始化的新结构填充默认值来编辑结构数组(作为指针).这样做似乎会导致一些非常奇怪的问题.我正在学习如何使用带有指针的结构,因此感谢您提供任何帮助. 来自主函数的片段(玩家只保存 startLoc 而不更改它) 位置**近;startLoc = initLocation("Base", 5);玩家 = initPlayer(startLoc);Near = &(startLoc ..
发布时间:2021-12-02 08:20:41 其他开发

自引用结构定义?

我已经很久没有写 C 语言了,所以我不确定我应该如何去做这些递归的事情......我希望每个单元格都包含另一个单元格,但我得到了一个沿着“字段'子'的类型不完整"的错误.怎么了? typedef struct Cell {int isParent;细胞儿童;} 细胞; 解决方案 显然一个 Cell 不能包含另一个 Cell,因为它变成了一个永无止境的递归. 但是一个 Cell 可以包含 ..
发布时间:2021-12-02 08:03:14 其他开发

为什么我们要在 C 中如此频繁地 typedef 结构?

我见过很多由如下结构组成的程序 typedef 结构体{国际我;字符 k;} 元素;elem 用户; 为什么经常需要它?有什么具体原因或适用领域吗? 解决方案 正如 Greg Hewgill 所说,typedef 意味着您不再需要到处编写 struct.这不仅可以节省按键次数,还可以使代码更简洁,因为它提供了更多的抽象. 类似的东西 typedef struct {整数 x, ..
发布时间:2021-12-01 23:50:09 其他开发

如何按照 C 编程语言标准初始化结构体

我想初始化一个结构元素,分为声明和初始化.这就是我所拥有的: typedef struct MY_TYPE {布尔标志;短整数值;双倍的东西;} 我的风格;无效功能(无效){MY_TYPE a;...a = { 真, 15, 0.123 }} 这是按照C编程语言标准(C89、C90、C99、C11等)声明和初始化MY_TYPE的局部变量的方式吗?或者有什么更好的或至少有效的方法吗? 更新 ..
发布时间:2021-12-01 23:48:02 其他开发

typedef 结构与结构定义

我是 C 编程的初学者,但我想知道在定义结构时使用 typedef 与不使用 typedef 有什么区别.在我看来真的没有区别,他们实现了相同的目标. struct myStruct{一个;整数二;}; 对比 typedef struct{一个;整数二;}myStruct; 解决方案 常见的习惯用法是同时使用两者: typedef struct S {整数 x;} 它们是不同的定义. ..
发布时间:2021-12-01 23:41:39 其他开发

结构填充和包装

考虑: struct mystruct_A{字符一个;国际b;字符 c;} X;结构 mystruct_B{国际b;字符一个;} y; 结构体的大小分别为 12 和 8. 这些结构是填充的还是压缩的? 什么时候进行填充或打包? 解决方案 Padding 将结构成员与“自然"地址边界对齐 - 例如,int 成员将具有偏移量,在 32 位平台上为 mod(4) == 0.默认情 ..
发布时间:2021-12-01 23:37:36 其他开发

如何在 Swift 中使用 SCNetworkReachability

我正在尝试转换这个 Swift 的代码片段.由于一些困难,我正在努力下车. - (BOOL) connectedToNetwork{//创建零添加结构 sockaddr_in zeroAddress;bzero(&zeroAddress, sizeof(zeroAddress));zeroAddress.sin_len = sizeof(zeroAddress);zeroAddress.sin_ ..
发布时间:2021-12-01 17:38:24 移动开发

C++中的结构填充

如果我在 C++ 中有一个 struct,有没有办法安全地将它读/写到跨平台/编译器兼容的文件中? 因为如果我理解正确的话,每个编译器都会根据目标平台“填充"不同的内容. 解决方案 没有.这是不可能的.这是因为缺乏二进制级别的 C++ 标准化. Don Box 写道(引用自他的书 基本 COM,COM As A Better C++) C++ 和可移植性 一旦做出决 ..
发布时间:2021-12-01 15:41:12 C/C++开发

什么时候应该在 C++ 中使用类和结构?

在 C++ 中,struct 与 class 在什么情况下使用更好? 解决方案 class 和 struct 在 C++ 中的区别是: struct 成员和基类/结构默认为 public. class 成员和基类/struts 默认是 private. 类和结构都可以混合使用 public、protected 和 private 成员,可以使用继承并可以具有成员函数. ..
发布时间:2021-12-01 15:04:01 C/C++开发

C++ 中“struct"和“typedef struct"的区别?

在C++中,有什么区别: struct Foo { ... }; 和: typedef struct { ... } Foo; 解决方案 在 C++ 中,只有细微的差别.它是 C 语言的延续,在这方面有所作为. C 语言标准(C89 §3.1.2.3,C99 §6.2.3 和 C11 §6.2.3) 为不同类别的标识符规定了单独的命名空间,包括 标签标识符(对于struct/uni ..
发布时间:2021-12-01 14:55:39 C/C++开发

C++中struct和class有什么区别?

这个问题是已经在 C#/.Net 的上下文中提出的. 现在我想了解 C++ 中结构和类之间的区别.请讨论技术差异以及在 OO 设计中选择其中一种的原因. 我将从一个明显的不同开始: 如果不指定public: 或private:,则结构的成员默认为public;类的成员默认是私有的. 我确信在 C++ 规范的晦涩角落中可以找到其他差异. 解决方案 您忘记了类和结构之间 ..
发布时间:2021-12-01 14:53:40 C/C++开发

为什么结构的 sizeof 不等于每个成员的 sizeof 之和?

为什么 sizeof 运算符返回的结构大小大于结构成员的总大小? 解决方案 这是因为添加了填充来满足对齐约束.数据结构对齐影响程序的性能和正确性: 未对齐的访问可能是一个硬错误(通常是SIGBUS). 未对齐的访问可能是软错误. 在硬件中进行更正,以适度降低性能. 或者通过在软件中模拟来纠正严重的性能下降. 此外,原子性和其他并发性保证可能会被破坏,从而导致细微的错误. ..
发布时间:2021-12-01 14:39:18 C/C++开发

我什么时候应该在 C# 中使用结构而不是类?

什么时候应该在 C# 中使用结构而不是类?我的概念模型是在项目仅仅是值类型的集合时使用结构.一种将它们合乎逻辑地组合成一个有凝聚力的整体的方法. 我遇到了这些规则 此处: 一个结构体应该代表一个价值. 一个结构体应该有一个内存占用空间小于 16 字节. 结构不应该在之后改变创作. 这些规则有效吗?结构体在语义上是什么意思? 解决方案 OP 引用的源代码具有一定的可信度 ..
发布时间:2021-12-01 09:12:00 C#/.NET

为什么可变结构是“邪恶的"?

在 SO 上的讨论之后,我已经多次阅读了关于可变结构是“邪恶的"的评论(就像在这个 问题). C# 中可变性和结构的实际问题是什么? 解决方案 结构是值类型,这意味着它们在传递时会被复制. 因此,如果您更改副本,则只会更改该副本,而不是原件,也不会更改可能存在的任何其他副本. 如果你的结构是不可变的,那么所有通过值传递产生的自动副本都是一样的. 如果你想改变它,你必 ..
发布时间:2021-12-01 08:56:55 C#/.NET