タグ付けされた質問 「struct」

構文がCに似ている、またはCから派生したさまざまなプログラミング言語のキーワード(C ++、C#、Swift、Go、Rustなど)。構文とセマンティクスは言語に依存する可能性があるため、特定のプログラミング言語タグを使用して、 `struct`の使用を含む質問にタグを付けます。キーワードは、他のデータ型で構成されるデータ型を定義または宣言します。構造体の各メンバーには独自のメモリ領域があります(メンバーが単一のメモリ領域を共有する「共用体」とは対照的)。


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") 私は自分のinitメソッドを次のように追加する必要があります: public struct CollectionTO { var index: Order var title: String var description: String public init(index: Order, title: String, description: String) …

10
ポインタを渡すのではなく、Cで構造体を値で渡すことの欠点はありますか?
ポインタを渡すのではなく、Cで構造体を値で渡すことの欠点はありますか? 構造体が大きい場合、明らかに大量のデータをコピーするパフォーマンスの側面がありますが、構造体が小さい場合、基本的には、いくつかの値を関数に渡すことと同じです。 戻り値として使用すると、さらに興味深いかもしれません。Cには関数からの戻り値が1つしかありませんが、多くの場合、いくつか必要です。簡単な解決策は、それらを構造体に入れて返すことです。 これには賛成または反対の理由がありますか? ここで私が話していることは誰にとっても明白ではないかもしれないので、簡単な例を挙げます。 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で1つの構造体を別の構造体に割り当てます
次のように、構造体のインスタンスを別のインスタンスに割り当てることができますか? struct Test t1; struct Test t2; t2 = t1; 私はそれが単純な構造で機能するのを見てきましたが、それは複雑な構造で機能しますか? コンパイラーは、データ型をデータ型に応じてコピーする方法をどのように知っていintますか?つまり、と文字列を区別していますか?
146 c  struct 


12
便利なC ++構造体の初期化
「ポッド」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 */ FooBar …

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を書いていないので、このような種類の再帰的な処理をどのように行えばよいのかわかりません...各セルに別のセルを含めたいのですが、エラーが発生します「フィールド「子」の型が不完全です」の行。調子はどう? typedef struct Cell { int isParent; Cell child; } Cell;
134 c  recursion  struct  typedef 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.