Il s'agit d'un simple programme, mais je n'arrête pas d'obtenir cette erreur de compilation. J'utilise MinGW comme compilateur.
Voici le fichier d'en-tête, point.h :
//type for a Cartesian point
typedef struct {
double x;
double y;
} Point;
Point create(double x, double y);
Point midpoint(Point p, Point q);
Et voici point.c :
//This is the implementation of the point type
#include "point.h"
int main() {
return 0;
}
Point create(double x, double y) {
Point p;
p.x = x;
p.y = y;
return p;
}
Point midpoint(Point p, Point q) {
Point mid;
mid.x = (p.x + q.x) / 2;
mid.y = (p.y + q.y) / 2;
return mid;
}
Et c'est là qu'intervient le problème du compilateur. Je continue à obtenir :
testpoint.c : référence non définie à 'create(double x, double y)'
Bien qu'il soit défini dans le point.c.
Il s'agit d'un fichier séparé appelé testpoint.c :
#include "point.h"
#include <assert.h>
#include <stdio.h>
int main() {
double x = 1;
double y = 1;
Point p = create(x, y);
assert(p.x == 1);
return 0;
}
Je ne sais pas quel est le problème.