Questions tagged «struct»

各种编程语言中的关键字,其语法类似于或衍生自C(C ++,C#,Swift,Go,Rust等)。使用特定的编程语言标签来标记涉及使用“ struct”的问题,因为语法和语义可能取决于语言。关键字定义或声明由其他数据类型组成的数据类型。结构的每个成员都有其自己的内存区域(与“ union”相反,后者的成员共享一个内存区域)。


9
结构填充和包装
考虑: struct mystruct_A { char a; int b; char c; } x; struct mystruct_B { int b; char a; } y; 结构的大小分别为12和8。 这些结构是被填充还是包装好? 填充或包装何时进行?
209 c  struct  structure  padding  packing 

20
在Java中像对象一样结构
是否完全违反Java创建类结构对象的方式? class SomeData1 { public int x; public int y; } 我可以看到一个带有访问器和增变器的类,它们更像Java。 class SomeData2 { int getX(); void setX(int x); int getY(); void setY(int y); private int x; private int y; } 第一个示例中的类在符号上很方便。 // a function in a class public int f(SomeData1 d) { return (3 * d.x) / d.y; …
195 java  oop  struct 



4
默认情况下,如何在Swift中将成员初始化器公开?
我有一个定义结构的快速框架: public struct CollectionTO { var index: Order var title: String var description: String } 但是,我似乎无法从导入该库的另一个项目中使用隐式成员明智的初始化程序。错误是“ CollectionTO”无法初始化,因为它没有可访问的初始化程序。也就是说,它没有为默认的隐式成员明智的初始化程序提供public关键字。 var collection1 = CollectionTO(index: 1, title: "New Releases", description: "All the new releases") 我必须像这样添加自己的初始化方法: public struct CollectionTO { var index: Order var title: String var description: String public init(index: Order, title: String, description: …

10
在C中通过值传递结构而不是传递指针是否有不利之处?
在C中通过值传递结构而不是传递指针是否有不利之处? 如果结构很大,显然有复制大量数据的性能方面,但是对于较小的结构,它基本上应该与将多个值传递给函数相同。 当用作返回值时,它甚至可能更有趣。C仅具有从函数返回的单个值,但是您经常需要多个。因此,一个简单的解决方案是将它们放在结构中并返回该结构。 是否有任何理由支持或反对? 由于可能不是所有人都知道我在这里说的是什么,所以我举一个简单的例子。 如果您使用C语言进行编程,则迟早会开始编写如下所示的函数: void examine_data(const char *ptr, size_t len) { ... } char *p = ...; size_t l = ...; examine_data(p, l); 这不是问题。唯一的问题是,您必须与您的同事达成共识,在该同事中,参数应为顺序,以便在所有功能中使用相同的约定。 但是,当您想返回相同类型的信息时会发生什么呢?您通常会得到以下内容: char *get_data(size_t *len); { ... *len = ...datalen...; return ...data...; } size_t len; char *p = get_data(&len); 这可以正常工作,但存在更多问题。返回值是一个返回值,除了在此实现中不是。从上面无法得知,不允许函数get_data查看len指向什么。没有什么可以使编译器检查通过该指针实际返回的值。因此,下个月,当其他人修改了代码却没有正确理解它(因为他没有阅读文档?)时,它就崩溃了,而没有任何人注意,或者它开始随机崩溃。 所以,我提出的解决方案是简单的结构 struct blob { char …

5
内置函数'malloc'的不兼容隐式声明
我收到此错误: 警告:内置函数“ malloc”的隐式声明不兼容 我正在尝试这样做: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); 仅供参考,手头使用的结构是: typedef struct { fileinfo** filedata; size_t nFiles; size_t size; size_t fileblock; } fileinfo_list; 我认为自己所做的没有任何问题。我只是创建一个tempList1 x的大小fileinfo_list。
155 c  struct  malloc 

8
错误:“无法修改返回值” c#
我正在使用自动实现的属性。我猜想解决以下问题的最快方法是声明我自己的后备变量? public Point Origin { get; set; } Origin.X = 10; // fails with CS1612 错误消息:无法修改“表达式”的返回值,因为它不是变量 试图修改作为中间表达式结果的值类型。因为该值不是持久性的,所以该值将保持不变。 若要解决此错误,请将表达式的结果存储在中间值中,或对中间表达式使用引用类型。

5
在C中将一个结构分配给另一个
您可以将结构的一个实例分配给另一个实例吗? struct Test t1; struct Test t2; t2 = t1; 我已经看到它适用于简单结构,但它适用于复杂结构吗? 编译器如何知道如何根据数据类型复制数据项,即区分an int和string?
146 c  struct 


12
方便的C ++结构初始化
我正在尝试寻找一种方便的方法来初始化“ pod” C ++结构。现在,考虑以下结构: struct FooBar { int foo; float bar; }; // just to make all examples work in C and C++: typedef struct FooBar FooBar; 如果我想方便地用C(!)初始化它,我可以简单地写: /* A */ FooBar fb = { .foo = 12, .bar = 3.4 }; // illegal C++, legal C 请注意,我想明确地避免使用以下表示法,因为如果将来我在结构中进行任何更改,它都会令我不寒而栗: /* B …

2
如何在结构中定义多个名称标签
我需要从mongo数据库中获取项目,所以我定义了一个这样的结构 type Page struct { PageId string `bson:"pageId"` Meta map[string]interface{} `bson:"meta"` } 现在,我还需要将其编码为JSON,但它会将字段编码为大写(我得到PageId而不是pageId),因此我还需要为JSON定义字段标签。我尝试过类似的方法,但是没有用: type Page struct { PageId string `bson:"pageId",json:"pageId"` Meta map[string]interface{} `bson:"meta",json:"pageId"` } 那么,如何在结构中定义多个名称标签呢?
137 json  struct  go 

9
自我参照结构定义?
我已经很长时间没有写C了,所以我不确定应该如何去做这些递归的事情……我希望每个单元格都包含另一个单元格,但是随着“字段'child'的行类型不完整”。这是怎么回事? typedef struct Cell { int isParent; Cell child; } Cell;
134 c  recursion  struct  typedef 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.