标签: struct

Python中的类C结构

有没有办法在Python中方便地定义类似C的结构?我厌倦了写下这样的东西:

class MyStruct():
    def __init__(self, field1, field2, field3):
        self.field1 = field1
        self.field2 = field2
        self.field3 = field3
Run Code Online (Sandbox Code Playgroud)

python struct

416
推荐指数
16
解决办法
48万
查看次数

结构与联盟之间的区别

是否有任何好的例子来区分a struct和a union?基本上我知道它struct使用其成员的所有内存并union使用最大的成员内存空间.是否有其他操作系统级别的差异?

c struct unions

393
推荐指数
10
解决办法
34万
查看次数

我们为什么要在C中经常输入一个结构?

我见过许多程序,包括如下所示的结构

typedef struct 
{
    int i;
    char k;
} elem;

elem user;
Run Code Online (Sandbox Code Playgroud)

为什么经常这么需要?任何具体原因或适用范围?

c struct typedef

379
推荐指数
10
解决办法
49万
查看次数

Go中的标签有什么用途?

Go语言规范中,它提到了标签的简要概述:

字段声明后面可以跟一个可选的字符串文字标记,该标记成为相应字段声明中所有字段的属性.标签通过反射界面可见,但否则将被忽略.

// A struct corresponding to the TimeStamp protocol buffer.
// The tag strings define the protocol buffer field numbers.
struct {
  microsec  uint64 "field 1"
  serverIP6 uint64 "field 2"
  process   string "field 3"
}
Run Code Online (Sandbox Code Playgroud)

这是一个非常简短的解释IMO,我想知道是否有人可以提供我这些标签的用途?

reflection struct go

364
推荐指数
3
解决办法
8万
查看次数

C++中的Struct构造函数?

可以struct在C++中有一个构造函数吗?

我一直试图解决这个问题,但我没有得到语法.

c++ constructor struct

343
推荐指数
15
解决办法
52万
查看次数

如何在控制台中打印struct变量?

如何打印(在控制台)Id,Title,Name等这个结构中Golang的?

type Project struct {
    Id int64 `json:"project_id"`
    Title string `json:"title"`
    Name string `json:"name"`
    Data Data `json:"data"`
    Commits Commits `json:"commits"`
}
Run Code Online (Sandbox Code Playgroud)

struct go

317
推荐指数
11
解决办法
25万
查看次数

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

在.NET中,值类型(C#struct)不能包含没有参数的构造函数.根据这篇文章,这是CLI规范要求的.会发生什么,对于每个值类型,都会创建一个默认构造函数(由编译器?),它将所有成员初始化为零(或null).

为什么不允许定义这样的默认构造函数?

一个微不足道的用途是有理数:

public struct Rational {
    private long numerator;
    private long denominator;

    public Rational(long num, long denom)
    { /* Todo: Find GCD etc. */ }

    public Rational(long num)
    {
        numerator = num;
        denominator = 1;
    }

    public Rational() // This is not allowed
    {
        numerator = 0;
        denominator = 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

使用当前版本的C#,默认的Rational 0/0并不是那么酷.

PS:默认参数是否有助于解决C#4.0或者是否会调用CLR定义的默认构造函数?


Jon Skeet回答道:

要使用您的示例,当有人执行时您希望发生什么:

 Rational[] fractions = new Rational[1000];
Run Code Online (Sandbox Code Playgroud)

它应该通过你的构造函数1000次?

当然应该,这就是我首先编写默认构造函数的原因.当没有定义显式默认构造函数时,CLR应该使用默认的归零构造函数; 这样你只需支付你使用的费用.然后,如果我想要一个1000个非默认Rational的容器(并希望优化1000个结构),我将使用一个 …

.net c# struct

242
推荐指数
6
解决办法
10万
查看次数

你如何在C中比较结构的相等性?

如何比较标准C中两个结构的实例是否相等?

c struct equality

202
推荐指数
5
解决办法
16万
查看次数

像Java中的对象一样结构化

是否完全违反Java方式来创建类似对象的结构?

class SomeData1 {
    public int x;
    public int y;
}
Run Code Online (Sandbox Code Playgroud)

我可以看到一个带有访问器和mutator的类更像Java.

class SomeData2 {
    int getX();
    void setX(int x);

    int getY();
    void setY(int y);

    private int x;
    private int y;
}
Run Code Online (Sandbox Code Playgroud)

第一个例子中的类是符号方便的.

// a function in a class
public int f(SomeData1 d) {
    return (3 * d.x) / d.y;
}
Run Code Online (Sandbox Code Playgroud)

这不方便.

// a function in a class
public int f(SomeData2 d) {
    return (3 * d.getX()) / d.getY();
}
Run Code Online (Sandbox Code Playgroud)

java oop struct

194
推荐指数
8
解决办法
34万
查看次数

结构填料和包装

考虑:

struct mystruct_A
{
   char a;
   int b;
   char c;
} x;

struct mystruct_B
{
   int b;
   char a;
} y;
Run Code Online (Sandbox Code Playgroud)

结构的尺寸分别为12和8.

这些结构是填充还是包装?

什么时候进行填充或包装?

c struct structure packing padding

189
推荐指数
6
解决办法
25万
查看次数

标签 统计

struct ×10

c ×4

go ×2

.net ×1

c# ×1

c++ ×1

constructor ×1

equality ×1

java ×1

oop ×1

packing ×1

padding ×1

python ×1

reflection ×1

structure ×1

typedef ×1

unions ×1