首頁 > 後端開發 > C++ > 如何在C中實現自己的sizeof

如何在C中實現自己的sizeof

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2023-09-14 16:17:08
轉載
715 人瀏覽過

如何在C中實現自己的sizeof

要使用sizeof(),我們可以使用變數x來取得值,使用&x,它將列印出其位址。現在,如果我們增加&x的值,它可能以不同的方式增加。如果只增加一個位元組,那就意味著它是字元類型,如果增加的值是4,那就是int或float類型,依此類推。因此,透過計算&x 1和&x之間的差值,我們可以得到x的大小。

在這裡,我們將使用宏,因為資料類型在函數中沒有定義。還有一件事,我們使用(char*)進行類型轉換,這樣它將告訴我們在該位置可以放置多少個字元類型的資料。因為字元類型佔用一個位元組的資料。

範例

#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中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
objective-c - 關於C語言指標的問題
來自於 1970-01-01 08:00:00
0
0
0
C語言計算順序問題
來自於 1970-01-01 08:00:00
0
0
0
linux - 一道C語言printf的經典題目
來自於 1970-01-01 08:00:00
0
0
0
Linux下一道C語言的經典面試題
來自於 1970-01-01 08:00:00
0
0
0
在PHP語言中,C#ASCII碼等價表示為
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板