ホームページ  >  記事  >  バックエンド開発  >  構造体のメンバーのサイズとオフセットを表示する C プログラムを作成します。

構造体のメンバーのサイズとオフセットを表示する C プログラムを作成します。

WBOY
WBOY転載
2023-08-29 20:09:19730ブラウズ

構造体のメンバーのサイズとオフセットを表示する C プログラムを作成します。

質問

構造体を定義し、メンバー変数のサイズとオフセットを表示する C プログラムを作成します

構造体本体 - これは、さまざまなデータ型の変数のコレクションであり、1 つの名前でグループ化されています。

構造宣言の一般的な形式

datatype member1;
struct tagname{
   datatype member2;
   datatype member n;
};

ここで、 struct - キーワード

tagname - 構造の名前を指定します

member1, member2 - 構成要素を指定します構造データ項目。

struct book{
   int pages;
   char author [30];
   float price;
};

構造体変数

構造体変数を宣言するには 3 つの方法があります。

方法 1

struct book{
   int pages;
   char author[30];
   float price;
}b;

方法 2

struct{
   int pages;
   char author[30];
   float price;
}b;

メソッド 3

struct book{
   int pages;
   char author[30];
   float price;
};
struct book b;

構造体の初期化とアクセス

メンバーと構造体変数間のリンクは、メンバー演算子 (またはドット演算子) によって確立されます。

次の方法で初期化できます:

メソッド 1

struct book{
   int pages;
   char author[30];
   float price;
} b = {100, "balu", 325.75};

メソッド 2

struct book{
   int pages;
   char author[30];
   float price;
};
struct book b = {100, "balu", 325.75};

メソッド 3 (メンバー演算子を使用)

struct book{
   int pages;
   char author[30];
   float price;
} ;
struct book b;
b. pages = 100;
strcpy (b.author, "balu");
b.price = 325.75;

方法 4 (scanf 関数を使用)

struct book{
   int pages;
   char author[30];
   float price;
} ;
struct book b;
   scanf ("%d", &b.pages);
   scanf ("%s", b.author);
   scanf ("%f", &b. price);

データ メンバーを使用して構造体を宣言し、そのオフセット値と構造体のサイズを出力してみます。

プログラム

リアルタイムデモンストレーション

#include<stdio.h>
#include<stddef.h>
struct tutorial{
   int a;
   int b;
   char c[4];
   float d;
   double e;
};
int main(){
   struct tutorial t1;
   printf("the size &#39;a&#39; is :%d</p><p>",sizeof(t1.a));
   printf("the size &#39;b&#39; is :%d</p><p>",sizeof(t1.b));
   printf("the size &#39;c&#39; is :%d</p><p>",sizeof(t1.c));
   printf("the size &#39;d&#39; is :%d</p><p>",sizeof(t1.d));
   printf("the size &#39;e&#39; is :%d</p><p>",sizeof(t1.e));
   printf("the offset &#39;a&#39; is :%d</p><p>",offsetof(struct tutorial,a));
   printf("the offset &#39;b&#39; is :%d</p><p>",offsetof(struct tutorial,b));
   printf("the offset &#39;c&#39; is :%d</p><p>",offsetof(struct tutorial,c));
   printf("the offset &#39;d&#39; is :%d</p><p>",offsetof(struct tutorial,d));
   printf("the offset &#39;e&#39; is :%d</p><p></p><p>",offsetof(struct tutorial,e));
   printf("size of the structure tutorial is :%d",sizeof(t1));
   return 0;
}

出力

the size &#39;a&#39; is :4
the size &#39;b&#39; is :4
the size &#39;c&#39; is :4
the size &#39;d&#39; is :4
the size &#39;e&#39; is :8
the offset &#39;a&#39; is :0
the offset &#39;b&#39; is :4
the offset &#39;c&#39; is :8
the offset &#39;d&#39; is :12
the offset &#39;e&#39; is :16

size of the structure tutorial is :24

以上が構造体のメンバーのサイズとオフセットを表示する C プログラムを作成します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。