Как в этом примере (в C):
typedef int type;
int main()
{
char type;
printf("sizeof(type) == %zu\n", sizeof(type)); // Outputs 1
}
Вывод всегда является размером локальной переменной type
.
Когда С++ удалил необходимость писать struct
перед каждым использованием структуры, он все еще сохранял синтаксис struct {type}
и ввел псевдоним (class {type}
), чтобы явно ссылаться на структуру или класс.
Пример (в С++):
struct type {
int m;
};
int main()
{
char type;
printf("sizeof(type) == %u\n", sizeof(type)); // Outputs 1
printf("sizeof(struct type) == %u\n", sizeof(struct type)); // Outputs 4
printf("sizeof(class type) == %u\n", sizeof(class type)); // Outputs 4
}
Мой вопрос в том, есть ли способ явно ссылаться на typedef
на C или С++. Возможно, что-то вроде sizeof(typedef type)
(но это не работает).
Я знаю, что обычно использовать разные соглашения об именах для переменных и типов, чтобы избежать подобных ситуаций, но мне все же хотелось бы знать, есть ли способ в langauge для этого или нет.:)