Совершенно законно использовать тип структуры с макросом va_arg
. Требование заключается в том, что
Тип параметра должен иметь имя type , указанное таким образом, чтобы тип указателя на объект, имеющий указанный тип, можно было получить простым постфиксом *
до тип .
Результат вызова va_arg
относится к этому типу, не - указатель на тип. Вы присваиваете значение типа Coordinate
для dec
, которое имеет тип Coordinate*
. Исправьте это и откорректируйте остальной код соответствующим образом, и вы сможете заставить его работать.
Также:
void main()
неверно. Используйте int main(void)
.
В коде вашего вопроса отсутствуют как минимум три обязательные директивы #include
.
Ваш код определяет AddValues
, но вызывает AddValuesOriginal
.
Если вы скажете нам «Но это не работает», вам нужно показать нам точно , как это не работает. Включите любые сообщения об ошибках в свой вопрос, отформатированные в виде кода.