저는 구조체를 사용하지 않고 현재 void 함수를 통해 구조체를 전달하려고합니다. 구조체 내 무효 기능뿐만 아니라, 파편 헤더에 정의되어void 함수에서 구조체를 조작합니다.
/* "main.h" */
struct input{
unsigned int NO;
double RA;
double DE;
double MV;
};
void full_view_equ(struct input, struct input);
기능은 다음과 같습니다, 두 개의 서로 다른 구조체를 사용하는 nessecary입니다. 구조체 EQU 이미 값, OUTPUT이 초기화되지 않은 것 포함
/* "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의 모든 항목이 대신 0입니다.
구조체 대신 배열을 사용하고 모든 것이 정상적으로 작동하기 전에 무엇이 잘못되었는지 알 수 없습니다.
배열은 함수에 전달 될 때 포인터로 변합니다. 구조체는 그렇지 않습니다. 구조체에 포인터를 전달하십시오. – mafso