ホームページ >バックエンド開発 >C++ >C で独自の sizeof を実装する方法

C で独自の sizeof を実装する方法

WBOY
WBOY転載
2023-09-14 16:17:08689ブラウズ

C で独自の sizeof を実装する方法

sizeof() を使用するには、変数 x を使用して値を取得し、&x を使用すると、そのアドレスが出力されます。ここで、&x の値を増やすと、別の方法で増加する可能性があります。 1 バイトだけ追加された場合は文字型であることを意味し、追加された値が 4 の場合は int 型または float 型であることを意味します。したがって、&x 1 と &x の差を計算することで、x のサイズを取得できます。

関数内でデータ型が定義されていないため、ここではマクロを使用します。もう 1 つ、型変換に (char*) を使用するので、その場所にどれだけの文字型データを配置できるかがわかります。文字型はデータの 1 バイトを占めるためです。

#include <stdio.h>
#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)
main(void) {
   int x = 10;
   char y = &#39;f&#39;;
   double z = 254748.23;
   printf("size of x: %d</p><p>", my_sizeof(x));
   printf("size of y: %d</p><p>", my_sizeof(y));
   printf("size of z: %d</p><p>", my_sizeof(z));
}

出力

size of x: 4
size of y: 1
size of z: 8

以上がC で独自の sizeof を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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