Я ищу способ иметь функцию в C, которая принимает в качестве входных данных строку, определяющую конкретный тип переменной.Затем функция возвращает результат sizeof
этого ввода, как если бы строка была оценена как тип.Рассмотрим приведенный ниже пример.
#include <stdint.h>
typedef struct my_struct {
int16_t var1;
int16_t var2;
int16_t var3;
} mystruct_t;
int main(int argc, char * argv[])
{
return sizeof(argv[1]); // THIS IS WRONG!!
}
Затем пользователь может скомпилировать это и попытаться вызвать ./myprogram my_struct_t
, где, как я ожидаю, будет возвращен фактический размер байта C my_struct_t
во время выполнения на моей машине.
Компонент этого, в котором я не уверен, состоит в том, что, очевидно, он получает размер (указатель на) строки, хранящейся в argv[1]
, а не размер типа, определенного строкой.Как я могу сделать это преобразование?Это вообще возможно?