问题标签 [struct]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 为什么可变结构是“邪恶的”?
在关于 SO 的讨论之后,我已经多次阅读了可变结构是“邪恶”的评论(就像在这个问题的答案中一样)。
C# 中的可变性和结构的实际问题是什么?
c - C99 中的 struct 与 ANSI-C 有什么区别?
此代码在 ANSI-C 中似乎不正确,但在 C99 中可以:
C99 和 ANSI-C 中的 struct 有什么区别?
编辑:我忘记了“a”,我的错。此代码在 C99 模式下使用 gcc 编译正常,但在 splint 上出现解析错误,已知它不支持所有 C99 扩展。
Edit2:这是 splint 的输出:
Edit3:这个文件是 eCos fileio.h(这个片段的最后一行是第 152 行):
c - 试图将结构成员复制到c中的字节数组
我试图将包含整数、字符和字符数组的结构的成员复制到字节数组中以发送到串行线路。到目前为止我有
当我获得此代码时,我并不完全理解它是如何工作的。我可以看到 memcpy 获取结构的每个元素并将其转换为由“i”变量索引的串行流,但我不知道 USARTWrite 函数如何将其打包成字符串,或者如何加载数组我的结构初始化。
抱歉,这篇文章有点长,但我刚刚开始这个编程云雀,并试图理解这个概念。
谢谢戴夫
编辑:
哇,很快就有很多好的答案 - 谢谢大家。
slaz:这对我来说似乎是合乎逻辑的,我还没有真正考虑过这种方法,因为我还没有真正理解指针,但是我开始看到它们是 C 的重要组成部分,所以我会适时拥有看看。
这行代码将数据发送到我的 UART,我将用什么替换包含消息内容的数组?似乎我在这里错过了一个逻辑步骤,我有一个变量告诉我我的结构从哪里开始以及它有多大,但没有要发送的数组
/li>
哈珀谢尔比:谢谢你的描述,这让我更清楚了。
rgds
戴夫
c++ - C++ 成员变量别名?
我很确定这是可能的,因为我很确定我已经看到它完成了。我认为这很棒,但我很乐意接受“这是一个糟糕的想法,因为____”这样的答案。
假设我们有一个基本结构。
现在,我想在这些变量上实现别名。
理想情况下,第三种语法与数组无法区分。也就是说,如果我将arr
作为参考参数发送给一个函数,该函数需要一个浮点数组来存储数据(例如许多 OpenGLglGet
函数),它会正常工作。
你怎么看?可能的?可能但愚蠢?
javascript - Javascript中的结构
以前,当我需要存储许多相关变量时,我会创建一个类。
但我想知道这是否是一个好习惯。还有其他更好的方法来模拟 JavaScript 中的结构吗?
c# - 如何在 C# 中编组打包结构的非托管缓冲区
我(成功)使用以下 pinvoke 签名在 c# 中调用 Windows FilterSendMessage 函数:
outBuffer参数填充了任意数量的结构(一个接一个地打包),在 C 中定义为:
名称字段被分配了一个可变长度、以空字符结尾的 unicode 字符串。len字段以字节为单位描述结构的总大小(包括名称字符串)。我相信在非托管方面如何处理结构没有任何问题。
当我尝试将 outBuffer 编组到 C# 中定义为 BAH_RECORD 结构的实例时,我的问题出现了:
如果我尝试打印/查看/显示 bah.name,我会得到垃圾......
为了确认 outBuffer 确实包含有效数据,我在 c# 中做了一些粗略的指针骇客来逐步处理它,调用 Marshal.ReadInt32 两次(以覆盖前 2 个结构字段),然后调用 Marshal.ReadByte 几次以填充一个字节[] 然后我将其用作 Encoding.Unicode.GetString() 的参数......字符串出来很好,所以它肯定在那里,我似乎无法让编组器正确处理它(如果它甚至能够?)
任何帮助表示赞赏
史蒂夫
c - C:指向结构定义中的结构的指针
我怎样才能在这个结构的定义中有一个指向下一个结构的指针:
这是我第一次写它的方式,但它不起作用。
c++ - 将字节数组反序列化为结构
我通过网络获得了一个字符/字节数组的传输。它包含一个标题和一些数据。我想将标题映射到结构上。这是一个例子:
假设结构从不包含任何可变长度字段,这是否总是有效?是否有独立于平台/惯用的方式来做到这一点?
笔记:
我在互联网上看到了很多可以让你序列化/反序列化的库,但我的印象是,它们只能反序列化之前已经用同一个库序列化的东西。好吧,我无法控制传输的格式。我肯定会得到一个字节/字符数组,其中所有值都相互跟随。
c# - 什么时候应该在 C# 中使用结构而不是类?
什么时候应该在 C# 中使用 struct 而不是 class?我的概念模型是当项目仅仅是值类型的集合时使用结构。一种在逻辑上将它们组合成一个有凝聚力的整体的方法。
我在这里遇到了这些规则:
- 一个结构应该代表一个单一的值。
- 结构的内存占用应小于 16 字节。
- 创建后不应更改结构。
这些规则有效吗?结构在语义上意味着什么?
c# - 如何在结构构造函数中设置自动属性支持字段的值?
给定这样的结构:
当然,会生成一个编译器错误,读取The 'this' object cannot be used before its all fields are assigned to。
有没有办法为支持字段或属性本身分配值,或者我是否必须使用我自己的显式支持字段以老式方式实现属性?