struct相关内容
我正在尝试学习 C#,并且我熟悉 C++ 结构指向符号 ->.我很好奇它是否会转移到 C# 中. 示例: someStruct->someAttribute += 1; 解决方案 C# 中有指针表示法,但仅在特殊情况下使用 unsafe 关键字. 使用 . 取消引用常规对象,但是如果您想编写快速代码,您可以固定数据(以避免垃圾收集器四处移动),从而“安全地"使用指针算法,并且那么
..
我想知道以下 C# 代码: struct 结构{公共结构(int a,int b){属性A = a;属性B = b;}公共 int PropertyA { 得到;放;}公共 int PropertyB { 得到;放;}} 编译时不会出现错误“在分配所有字段之前无法使用‘this’对象".对于类似的类,它编译没有任何问题. 可以通过重构为以下内容来使其工作: struct 结构{私人 i
..
我有一个关于 struct 的观察.当我在 Struct 中声明一个属性并且如果我没有初始化 Struct 时,它会给我以下错误 - “使用未分配的局部变量 empStruct" PSeduo 代码- struct EmpStruct{私人 int firstNumber;public int FirstNumber{得到 { 返回第一个数字;}设置 { firstNumber = 值;}
..
我如何知道我可以从 reply 对象/接口访问的字段?我试过反射,但似乎你必须先知道字段名称.如果我需要知道所有可用的字段怎么办? //Do 向服务器发送命令并返回接收到的回复.Do(commandName string, args ...interface{}) (reply interface{}, err 错误) 解决方案 您可以使用 reflect.TypeOf() 函数获取refl
..
我知道这个答案,但是这不是一回事 - 那是传递一个指针以使用分配进行初始化. 我正在与具有以下结构定义的 C 库交互: typedef struct myStruct { unsigned char var [50];} myStruct; 有一个函数可以将结构的地址传递给它 - 通常基于堆栈而不是堆,因此: myStruct mine;initMyStruct(&mine); 这会
..
我正在尝试在 C# 中使用等号 (==) 来比较两个结构.我的结构如下: public struct CisSettings : IEquatable{公共 int 增益 { 得到;私人订制;}公共 int 偏移 { 获取;私人订制;}公共 int Bright { 得到;私人订制;}公共 int 对比度 { 获取;私人订制;}公共 CisSettings(整数增益,整数偏移,整数明亮,整数对比
..
供参考:offsetof 宏(!) 将struct 数据类型和指定结构的成员作为参数,并返回给定成员相对的整数偏移量到结构的开头.请参阅详细概述和参考资料. 泛型 offsetof 背后的逻辑非常简单,可以在 Delphi 中轻松重现 (或多或少)(字面上轻松,消除了预先声明的指针类型要求使其成为基本的内联表达式,请参阅 David Heffernan 的 answer 和 关于交换引用和取
..
结构节点{下一个结构节点;内部标识;} 给出“下一个字段有不完整的类型错误". 这个结构有什么问题? 解决方案 在创建自引用数据类型时,需要使用指针来解决循环问题: 结构节点;结构节点{结构节点 * 下一个;内部标识;} ...应该可以,但在使用时注意正确分配内存. 为什么是指针?考虑一下:struct 定义的意义在于,当您说 node.id 时,编译器可以确定要分配多少
..
我有这段代码.它似乎在这里取消引用一个空指针,但随后将结果与 unsigned int 进行按位与运算.我真的不明白整个部分.它的目的是什么?这是指针算术的一种形式吗? struct hi{长一;国际b;长 c;};int main(){结构嗨 ob={3,4,5};struct hi *ptr=&ob;int num= (unsigned int) &(((struct hi *)0)->b)
..
如何使用 mongo-go-driver 过滤字段.用 findopt.Projection 试过了,但没有成功. type fields struct {_id int16}s := bson.NewDocument()过滤器 := bson.NewDocument(bson.EC.ObjectID("_id", starterId))var opts []findopt.Oneopts =
..
我想知道是否有一种方便的方法可以在 Matlab 中使用另一个结构体的值来更新结构体.这是代码,使用 fieldnames、numel 和 for 循环, fn = fieldnames(new_values);对于 fi=1:numel(fn)old_struct.(fn{fi}) = new_values.(fn{fi});结尾 当然,我不想丢失 old_struct 中不存在于 new_
..
我想将一个在线 json 文件加载到我的应用程序中,但我遇到了这个错误: typeMismatch(Swift.Array,Swift.DecodingError.Context(codingPath: [], debugDescription:"本应解码数组,但找到了字典.",底层错误:nil)) 我查看了 stackoverflow,但其他解决方案并没有帮助解决我的问题. 我
..
struct Div{国际我;国际 j;};A级{上市:一个();分部÷}; 在我的构造函数定义中,我有以下内容 A::A() : divs(NULL){} 我收到以下错误: Error72 错误 C2354:'A::divs' : 引用成员的初始化需要一个临时变量 解决方案 必须初始化引用才能引用某事;它不能引用任何内容,因此您不能默认构造一个包含一个类的类(除非像其他人建
..
我正在尝试为我的结构设置默认值.例如 Int 的默认值 - 0,DateTime 的默认值 - 1/1/0001 12:00:00 AM.众所周知,我们不能在结构中定义无参数构造函数. struct 测试{整数;字符串 str;}课程计划{静态无效主(字符串 [] args){Console.WriteLine(default(Test));//显示结构体 test.Test 的命名空间和名称C
..
假设我有一个这样的结构: struct MyStruct{uint8_t var0;uint32_t var1;uint8_t var2;uint8_t var3;uint8_t var4;}; 这可能会浪费大量(而不是一吨)空间.这是因为 uint32_t 变量的必要对齐. 实际上(在对齐结构以便它可以实际使用 uint32_t 变量之后)它可能看起来像这样: struct MySt
..
我可以将 C# 结构传递到 FORTRAN 就好了.我什至可以在 FORTRAN 中将 C# 结构的数组作为 TYPE() 的数组传递.我遇到麻烦的地方是当我试图将值返回到 C# 时.下面是一个例子: fortran dll 是: 模块测试类型 VALUEREF整数*4 :: AENDTYPE VALUEREF包含子程序 TEST_REF(T,N)!DEC$ 属性 DLLEXPORT ::
..
我想知道为什么位域适用于联合/结构,而不适用于像 int 或 short 这样的普通变量. 这有效: struct foo {整数栏:10;}; 但这失败了: int bar : 10;//“预期的 ';'在声明结束时" 为什么此功能仅在联合/结构中可用,而在变量中不可用?技术上不一样吗? 编辑: 如果允许,您可以创建一个具有 3 个字节的变量,而无需每次都使用 struct
..
我遇到了一个问题,将结构成员传递给模板函数.该函数的目标是获取成员的地址和大小.这是一个简单的例子: 这是结构.它具有打包属性. struct TestStruct {无符号字符 elem1;无符号字符 elem2;uint64_t elem3;字符缓冲区[10000];int elem4;无符号字符 elem5;}__attribute__ ((打包)); 这是模板函数,它应该得到一个
..
我正在阅读 Apple 的文档.我以为我知道何时选择值类型以及何时选择引用类型,但我又回到了 Swif101.文档说: 值类型:数据将在多个线程的代码中使用. 引用类型:您想要创建共享的、可变的状态 引用类型不是也可以跨多个线程共享吗?这两行有什么区别? 解决方案 正如其他人所指出的,引用类型总是传递一个指向对象的指针,这是您想要“共享、可变状态"(如该文档)的理想选择你提到
..
考虑以下 C 代码片段: typedef struct node{内部值;结构节点*左;结构节点*对;}节点;void inorderTraversal(node *p){inorderTraversal(p->left);printf("%d",p->val);inorderTraversal(p->right);} 如果我只写 typedef struct 而不是 typedef stru
..