C언어 헤더파일에서 int& x를 어떻게 사용해야 하는지 모르겠습니다.
조회수 241회
소스.c 파일에 있는 배열의 최솟값, 최댓값, 합, 평균, 분산, 표준편차를 BigArray.c에서 구하여 소스.c에 전달하고 싶습니다. 함수에서 여러개를 전달하려면 int& x를 사용하는 것으로 알고 있습니다. 다른 파일에서 사용하려면 어떻게 해야합니까?
소스.c
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include "BigArray.h"
#define Data_Output_File "Data_output.txt"
void arrayStatistics_basicArray(FILE* fout)
{
int num_data = 10, min, max;
double sum, avg, var, std_dev;
int data_array[MAX_NUM_DATA] = { 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
printf("\nArrayStatistics_basicArray .....\n");
fprintf(fout, "\nArrayStatistics_basicArray .....\n");
getArrayStatistics(data_array, num_data, min, max, sum, avg, var, std_dev);
printf("min(% 5d), max(% 5d), sum(% 7.2lf), avg(% 7.2lf), var(% 7.2lf),std_dev(% 7.2lf)\n", min, max, sum, avg, var, std_dev);
printf("arrayStatistics_basicArray - completed. Result is also stored in output file(% s).\n", Data_Output_File);
}
int main(void)
{
FILE* fout;
fout = fopen(Data_Output_File, "w");
if (fout == NULL)
{
printf("Error in creation of %s !!\n", Data_Output_File);
return -1;
}
arrayStatistics_basicArray(fout);
fclose(fout);
}
BigArray.h
#pragma once
#ifndef BIG_ARRAY_H
#define BIG_ARRAY_H
void getArrayStatistics(int* array, int num_data, int& min, int& max, double& sum, double& avg, double& var, double& std_dev);
#endif
BigArray.c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void getArrayStatistics(int* array, int size, int& min, int& max, double& sum, double& avg, double& var, double& std_dev)
{
double sum_sq_diff = 0.0;
for (int i = 0; i < size; i++)
{
sum += array[i];
}
avg = sum / size;
for (int i = 0; i < size; i++)
{
sum_sq_diff += (array[i] - avg) * (array[i] - avg);
}
var = sum_sq_diff / size;
std_dev = sqrt(var);
}
오류
오류(활성) E0141 본문이 있는 경우 명명되지 않은 프로토타입 매개 변수를 사용할 수 없습니다. (줄6)
오류(활성) E0018 ')'가 필요합니다. (줄6)
오류 C2143 구문 오류: ')'이(가) '&' 앞에 없습니다. (줄6)
오류 C2143 구문 오류: '{'이(가) '&' 앞에 없습니다. (줄6)
오류 C2059 구문 오류: '&' (줄6)
오류 C2059 구문 오류: ')' (줄6)
오류(활성) E0020 식별자 "sum"/"avg"/"var"/"std_dev"이(가) 정의되어 있지 않습니다.
댓글 입력