Существует ли способ распечатать тип переменной/указателя в C?

Я хочу распечатать (или иначе установить) тип некоторой переменной в моей программе. Существует ли хороший способ сделать это? Пользой я имею в виду путь, который работает, даже если это означает намеренно бросать ошибки компилятора.

Например:

client.c:55: error: incompatible types in assignment

ошибка, которую я получаю прямо сейчас. То, что я ХОЧУ, является этим, чтобы сказать мне что-то как:

client.c:55: error: attempting to assign type struct a to type struct b

или функция, как которая я могу использовать так:

printf(gettype(x));

который произвел бы:

struct b
27
задан Ritwik Bose 29 January 2010 в 08:06
поделиться

3 ответа

Я полагаюсь на Resharper, чтобы проанализировать, что для меня, и жаль, что визуальная студия не отправляется с такой аккуратной особенностью.

-121--3375300-

Попробуйте отладить с помощью GDB, он будет распечатать все свойства, связанные с переменными, включая его тип. Но ваша программа должна компилировать перед использованием GDB.

3
ответ дан 28 November 2019 в 04:44
поделиться

в C Вы предоставляете тип, когда вы объявляете переменную. Это единственная информация, которую имеет компилятор, когда он жалуется на задание (то есть, он не будет использовать тип выполнения объекта, но статический тип у вас есть).

Перейти к коду, найдите Line 55, проверьте, какие переменные есть и найдите типы в коде. В C нет даже перегрузок, типы как статические и простые, так как он попадает на любой язык.

1
ответ дан 28 November 2019 в 04:44
поделиться

Если вы используете GCC или совместимый GCC компилятор, вы можете использовать (очевидно, нестандартный и не портативный) ключевое слово Typeof , которое работает размер.

1
ответ дан 28 November 2019 в 04:44
поделиться
Другие вопросы по тегам:

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