У меня есть структура, которая может содержать 2 или 4 члена в зависимости от определения препроцессора.Элементы структуры слияния
struct foo {
int m1;
int m2;
#ifdef MORE_MEMBERS
int m3;
int m4;
#endif
}
У меня есть функции, которые принимают foo.m3
foo.m4
и в качестве аргументов. Из-за этого я получаю ошибку компиляции, когда MORE_MEMBERS
не определен.
Я стараюсь избегать добавления #ifdef
при каждом вызове функции. Есть ли способ сделать m3
и m4
be aliases/dummies, когда MORE_MEMBERS
не определен? Я хотел бы сохранить размер структуры равным sizeof(int) * 2
.
Да, измените свой код. Вы используете ужасную картину. Функция должна, возможно, взять параметр strcut foo, но вы не сможете помочь вам, потому что информации недостаточно. Единственное, что довольно ясно, это то, что у вас серьезная проблема с дизайном. –
Это не мой код. Я пытаюсь добавить функцию в чужой код, сделав как можно меньше изменений. Предыдущий код уже имеет функции, которые принимают foo.m1 вместо foo. – devil0150
Какие функции выполняет 'foo.m3' и/или' foo.m4', если 'MORE_MEMBERS' не определен? – cschneid