Это часть программы, в которой я вызываю функцию, которая читает компоненты из файла «.dat» и сохраняет входные данные для членов Struct. Когда я пытаюсь вызвать функцию из моего main.c, она дает различные ошибки в зависимости от того, что я пытаюсь. В первую очередь: конфликтующие типы «ReadFile» и слишком мало аргументов для функции «ReadFile». Я также получаю предупреждение «Передача аргумента из« ReadFile »делает целое число из указателя без cast» и некоторой информации.Почему я не могу назвать свою функцию (C)?
Это main.c
#include "MyData.h"
#include "NodalA.h"
#include "FileHandling.h"
#include <stdio.h>
#include "windows.h"
int main(){
ComponentType *CircuitData;
int numComp = 6;
int numEl = 0;
int numNodes = 0;
CircuitData = malloc((numComp)*sizeof(ComponentType));
ReadFile(CircuitData, &numEl, &numNodes);
return 0;
}
Это FileHandling.c:
#include "FileHandling.h"
#include "stdio.h"
void ReadFile(ComponentType *CircuitData, int *numEl, int *numNodes){
numEl = 0;
numNodes = 0;
int index = 0;
FILE *data;
data = fopen("mydata.dat", "r");
if (data == NULL){
printf("Error: \"mydata.dat\" could not be opened");
}
else {
while(!feof(data)){
fscanf(data, "%s, %s, %s, %f", CircuitData[index].name, CircuitData[index].node1, CircuitData[index].node2, CircuitData[index].value);
*CircuitData[index].node1 = extractInteger(CircuitData[index].node1);
*CircuitData[index].node2 = extractInteger(CircuitData[index].node2);
if(*CircuitData[index].node1 > *numNodes)
*numNodes = *CircuitData[index].node1;
if(*CircuitData[index].node2 > *numNodes)
*numNodes = *CircuitData[index].node2;
numEl++;
index++;
}
}
fclose(data);
}
И это MyData.h
#ifndef MYDATA_H_
#define MYDATA_H_
typedef struct Comp{
char name[5]; //Name of circuit component
char node1[5], node2[5]; //2 nodes
float value[5]; //value
}ComponentType;
#endif /* MYDATA_H_ */
Любая помощь будет оценена. Есть больше кода, но я думаю, что это самая важная часть.
какие ошибки вы получаете? –
Обратите внимание, что большинство компиляторов C не прерывают компиляцию первой ошибки, что означает, что ваша ошибка может быть не связана с объявлением функции. – Mauren
У меня такое чувство, что ваш 'ReadFile' сталкивается с другим' ReadFile', который существует в API-интерфейсах Windows. Не могли бы вы разместить весь журнал сборки? –