7

重複の可能性:
sizeofを使用しないデータ型のサイズ

私の友人の1人が最近NVIDIAのインタビューに出演し、そこで彼に頼まれましたimplement his own sizeof in C。私は練習のために同じことを試み、sizeof一方が変数を処理でき、もう一方がデータ型を処理できる2つの異なる定義を正常に記述しましたが、2つをマージできません。そうする方法はありますか?sizeofまた、 Cで完全を実装することは可能ですか。

など intのタイプを処理しますchar

#define my_sizeof(type) ((size_t)(((type *)0) + 1))

次のような変数を処理しますx

#define my_sizeof(var) (size_t)((char *)(&var+1)-(char*)(&var))
4

1 に答える 1

1

良い質問

  1. 2つをマージする方法がわかりません。

  2. 2 番目を処理する実装は安全ではありません

ユーザーが

sizeof (*ptr)

sizeof (func())
于 2012-06-02T14:21:10.487 に答える