Я не очень уверен в использовании структур и в настоящее время пытаюсь передать структуру через функцию void. структура определена в заголовке шарда, а также моей ничтожной функции:манипулировать structs in void functions
/* "main.h" */
struct input{
unsigned int NO;
double RA;
double DE;
double MV;
};
void full_view_equ(struct input, struct input);
Функция выглядит так, что nessecary использовать два различных структур. Struct EQU уже содержит значения, выход будет инициализирован:
/* "transformations.c" */
#include "main.h"
void full_view_equ(struct input EQU, struct input OUTPUT){
OUTPUT.NO = EQU.NO;
OUTPUT.RA = -radian2degree(EQU.RA);
OUTPUT.DE = radian2degree(EQU.DE);
OUTPUT.MV = EQU.MV;
}
Я вызываю функцию с двумя структурами EQU и вывода, как это:
struct input EQU, OUTPUT;
full_view_equ(EQU, OUTPUT);
Проблема заключается в том, что внутри функции, Ожидаемые значения OUTPUT. Вне функции все записи OUTPUT равны нулю.
Я не могу понять, что с ним не так, прежде чем я использовал массивы вместо структур, и все работало нормально.
Массивы распадаются на указатели при передаче функции, структур нет. Пропустите указатели на структуру. – mafso