Можно ли передать тип данных как параметр функции?
Задача состоит в том, чтобы написать программу, в которой через sizeof определяется размер типа данных. Можно ли написать функцию, в которую передается именно тип данных и, если это возможно, то как это сделать?
wisgest, дело в том, что я планирую в цикле давать функции тип данных, но создать массив или enum из типов данных не получается, так как в vs это ключевые слова
В C - нет. В C++ можно воспользоватся шаблонами. Но если вопрос действительно про C, то надо передавать в функцию какой-нибуть enum где все возможные типы перечисленны. Или, как в scanf, передавать идентификатор типа в строке.
Пытаюсь переписать под свою задачу, а именно из списка с типами данных в цикле класть эти типы в функцию, как параметр. Функция будет возвращать sizeof типа данных. Переписал под свою задачу так:
#define tysize(type) tysize(({int a = sizeof(type); printf("%d", a);}))
int main()
{
tysize(int);
return 0;
}
Подобная конструкция
({})
работает только на gcc компиляторе, однако мой код не компилируется и выдается ошибка: