J'ai ce fichier include ( et ce fichier de mise en œuvre ( mémoire .h code>) memory.c code>) p > #include <stdlib.h>
#include "memory.h"
void
memory_init (memory* mymemory, int size)
{
mymemory->cells = (int*) malloc (sizeof (int) * size);
mymemory->cells_number = size;
mymemory->current_cell = (int*) ((mymemory->cells_number / 2) * sizeof (int));
}
... //other function definitions follow
3 Réponses :
Parce que le système Memory.h code> est une observation de votre Memory.h code>, causant le #include code> pour réussir sans déclarer vos types. Plusieurs corrections possibles: p>
#include " code> pour prendre effet. LI>
Pour éviter les problèmes futurs, existe-t-il une référence rapide pour les noms d'en-tête Standard C?
@klez qui semble être une question existante: Stackoverflow.com/Questtions/2027991/... . Dans ce cas, cependant, les listes liées aux normes n'auraient pas aidé, car memory.h code> n'est pas un en-tête standard. Vous pouvez toujours voir ce que votre OS particulier fournit quelque chose comme trouver / usr / include / -type f -name '* .h' code>.
Fourni, bien sûr, que votre système d'exploitation a trouve code> et garde les en-têtes dans / usr / include / code>. Toutes les personnes n'ont pas la chance de gérer ces OSES.
Cette réponse est vraiment en retard, mais j'ai rencontré un problème similaire. p>
Je pense que votre problème est lié à une faute de frappe dans votre fichier
Votre réponse est vraiment en retard et le problème n'était pas que :-) merci quand même
Dans votre code, vous avez défini comme celui-ci pour mémoire.h si n'importe quel autre fichier que vous utilisez dans votre projet est d'avoir la même #define, c'est-à-dire mémoire_h. Obtenez cette erreur. p> solution: p>
GCC version 4.2.1 sur l'OSX Snow Leopard, avec interrupteur -ansi
Peut-être qu'un autre en-tête déjà défini Memory_H avant que votre en-tête soit inclus?