Я начал чувствовать себя комфортно с C, а затем я столкнулся с типом. Если у меня есть следующие определены в * .h файлеЛитье указателя пустоты на структуру
struct data {
int value;
char *label;
};
и это в другом * .h файле
# define TYPE void*
Как бросить указатель недействительным на структуры, так что я могу использовать переменная «TYPE val», которая передается в функции? Например, если я хочу использовать значение, на которое указывает TYPE val, как мне его передать, чтобы передать это значение другим функциям?
'#define TYPE void *' - плохая идея. По крайней мере, это должно быть 'typedef'. Рассмотрим, что произойдет в следующем объявлении: 'TYPE x, y;' или 'const TYPE x;'. – jamesdlin
Кроме того, если вы имеете дело с указателями 'void *' и C, вам не нужно делать какие-либо явные кастинги. C позволяет 'void *' указателям быть неявно * cast: 'void * p = ...; struct data * val = p; '. – jamesdlin
@ jamesdlin Я согласен с тем, что это плохая идея, но это не моя идея, поэтому я должен пойти с ней. Таким образом, когда 'TYPE val' передается в функцию как указатель на void, я могу просто объявить' struct data * temp = val; ', а затем передать temp функции, и я должен иметь возможность использовать temp-> стоимость? – user1852050