Вопрос по c – Реализуйте свой собственный размер [дубликата]

7

Possible Duplicate:
size of a datatype without using sizeof

Один из моих друзей недавно появился в интервью NVIDIA, где его попросилиimplement his own sizeof in C, Я пытался сделать то же самое для практики и успешно написать два разных определенияsizeof одна из которых может обрабатывать переменные, а другая может обрабатывать типы данных, но я не могу объединить их. Есть ли способ сделать это? Кроме того, возможно ли реализовать полныйsizeof в С.

Ручка типа, какint, char так далее

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

Обрабатывает переменные какx

#define my_sizeof(var) (size_t)((char *)(&var+1)-(char*)(&var))
Конечно, это работает только потому, что компилятор эффективно вызывает sizeof () изнутри ... :) Neil Coffey
Одна из причин, по которой это трудно / невозможно, состоит в том, чтоsizeof это не функция. Этот вопрос немного похож на "есть ли способ реализовать= в С, без использования=? & Quot ;. unwind
Для такого ученика, как вы, будет хорошей идеей реализовать макросы container_of и offset_of. Хорошее обучение! Saurabh

Ваш Ответ

1   ответ
1

Хороший вопрос

  1. I don't see a way to merge the two.

  2. The implementation to handle the second is unsafe

Что делать, если пользователь делает

sizeof (*ptr)

sizeof (func())
Error: User Rate Limit Exceeded Ravi Gupta

Похожие вопросы