У меня есть два разных развертывания в моем проекте! для этих двух развертываний у меня разные члены структуры, но с тем же именем структуры. Например, я использую ниже модель для DO-Есть ли другой способ избежать конфликтующих типов, кроме тех, которые используют директивы препроцессора?
#ifdef SATHISH
typedef struct{
int id;
char name[10];
}data;
#else
typedef struct{
struct student s1;
double average;
}data;
#endif
В этом случае, когда SATHISH
флага включен первая структура будет оцениваться, если флаг не определен вторая структура будет оцениваться!
Есть ли другой лучший альтернативный способ сделать то же самое без использования препроцессорных директив (например, #ifdef .... #endif
или #ifndef .... #endif
)?
Любое предложение оценено!
Неясно, что проблема, которую вы пытаетесь решить. Очевидно, что нет никакого способа сделать точный то же самое, но, по-видимому, вы ищете какую-то альтернативу ... ... это просто не понятно для чего. –
Почему бы вам просто не придерживаться определения второй структуры и оставить неиспользованные поля пустыми? – Coconop
Вы хотите пространство имен в c? –