问题标签 [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.

0 投票
6 回答
724 浏览

c# - 什么时候结构不在堆栈上?

我正在阅读 Jon Skeet 的书评,他正在研究Head First C#的许多不准确之处。

其中一个引起了我的注意:

[在错误部分下] 声称结构始终存在于堆栈中。

在什么情况下结构不会存在于堆栈中?这与我认为我对结构的了解相反。

0 投票
4 回答
15810 浏览

c# - 在结构上隐藏无参数构造函数

是否可以在 C# 中向用户隐藏无参数构造函数?

我想强迫他们总是使用带参数的构造函数

例如这个位置结构

我只希望用户能够通过指定 x 和 y 坐标来更新位置。

但是,无参数构造函数始终可用。

我不能将其设为私有。甚至将其定义为公开的。

我已阅读此内容: 为什么我不能为 .NET 中的结构定义默认构造函数?

但它并没有真正帮助。

如果这是不可能的 - 检测我被传递的位置是否具有值的最佳方法是什么?

明确检查每个属性字段?有没有更流畅的方法?

0 投票
6 回答
9210 浏览

c++ - 从 C++ 结构字段中获取单个字段的大小

简短的版本是:如何学习 c++ 字段的单个字段的大小(以位为单位)?

为了澄清,我正在谈论的领域的一个例子:

要获得整个 Test 对象的大小很容易,我们只是说

我们可以通过

我想知道如何获取单个字段的大小,例如 Test::field4。上面的普通结构成员示例不起作用。有任何想法吗?或者有人知道它不能工作的原因吗?我相当确信 sizeof 不会有帮助,因为它只返回以字节为单位的大小,但如果有人知道否则我会全神贯注。

谢谢!

0 投票
12 回答
10673 浏览

performance - 为什么通过引用传递结构不是一种常见的优化?

直到今天,我一直认为体面的编译器会自动将 struct pass-by-value 转换为 pass-by-reference,如果结构足够大,后者会更快。据我所知,这似乎是一个不费吹灰之力的优化。然而,为了满足我对这是否真的发生的好奇心,我在 C++ 和D中创建了一个简单的测试用例,并查看了 GCC 和 Digital Mars D 的输出。两者都坚持按值传递 32 字节结构,而所有的有问题的函数是将成员相加并返回值,没有修改传入的结构。C++ 版本如下。

我的问题是,为什么编译器不会优化这样的东西以传递引用而不是实际将所有这些ints 推入堆栈?

注意:使用的编译器开关:GCC -O2(-O3 内联 foo().),DMD -O -inline -release。

编辑:显然,在一般情况下,按值传递与按引用传递的语义不会相同,例如是否涉及复制构造函数或在被调用者中修改了原始结构。然而,在许多现实世界的场景中,语义在可观察行为方面是相同的。这些是我要问的情况。

0 投票
5 回答
2025 浏览

struct - Clojure 结构嵌套在另一个结构中

是否可以在 Clojure 的结构中嵌套结构?考虑以下代码:

当然,这是一个人为的例子,但在某些情况下,我想将大型数据结构分解为更小的子结构,以使代码更易于维护。正如评论所表明的,如果我做表格 1,我会得到“249 nil nil”,但如果我做表格 2,我会得到“结构构造函数的参数太多”。

如果我以错误的方式处理这个问题,请告诉我我应该做什么。搜索 Clojure 谷歌组并没有为我找到任何东西。


编辑:

我想我在问题的陈述中并没有我想的那么清楚:

1.) 是否可以在 Clojure 中将一个结构嵌套在另一个结构中?(从下面判断是肯定的。)

2.) 如果是这样,正确的语法是什么?(再一次,从下面来看,似乎有几种方法可以做到这一点。)

3.) 当你有一个嵌套在另一个结构中的结构时,你如何通过指定的键获取一个值?

我想我的示例代码并没有真正证明我想要做得很好。我在此处添加此内容,以便其他搜索此内容的人可以更轻松地找到此问题及其答案。

0 投票
4 回答
5319 浏览

c - 有人可以解释 Solaris 中“dirent”结构的定义吗?

最近我正在查看“dirent”结构(在 dirent.h 中),对它的定义有点困惑。

注意:这个头文件来自我学校的一台 Solaris 机器。

p>

特别是 d_name 字段。这将如何在操作系统中工作?如果您需要存储一个以空结尾的字符串,那么单个字符的数组有什么用?我知道您可以通过数组的第一个元素获取数组的地址,但我仍然感到困惑。显然发生了什么事,但我不知道是什么。在我家里的 Fedora Linux 系统上,这个字段被简单地定义为:

现在,由于显而易见的原因,这更有意义。有人可以解释为什么 Solaris 头文件定义结构吗?

0 投票
4 回答
3465 浏览

c - 将 int 成员添加到 C 结构会导致段错误

我还在学习 C,并且已经开始使用它来生成图像。我不知道为什么我的一个程序会出现段错误。这是源代码,减少到 40 行:

它编译并运行良好(在 Ubuntu 上使用 gcc,在带有 Cygwin 的 Vista 上使用),但取消注释处理 img->o 的两行会破坏它。我感觉它与上一个问题有关,但我正在 malloc'ing 所有需要 malloc'ed 的东西(我认为)。任何帮助,将不胜感激。

0 投票
9 回答
127764 浏览

c - 自引用结构定义?

我写 C 的时间不长,所以我不确定我应该如何去做这些递归的事情......我希望每个单元格包含另一个单元格,但是我得到了一个错误“字段‘孩子’的类型不完整”的行。这是怎么回事?

0 投票
3 回答
389 浏览

c++ - 访问集合的“总线错误”从一个结构

搜索了一段时间,但我无法弄清楚为什么这会引发总线错误。

任何帮助将非常感激。

0 投票
7 回答
158066 浏览

c++ - 这个错误是什么意思:“错误:'type_name'之前的预期说明符限定符列表”?

我一直在研究 Cell 处理器,我正在尝试创建一个包含 的结构,该结构将spe_context_ptr_t在线程中用于启动 spe 上下文,并且还将保存指向将传递给其他内容的指针来自线程内的 spu 上下文(目前我试图将其设为通用指针,但实际上它将是指向我已定义的另一个结构的指针)。当我尝试编译时,出现以下错误: