2011-08-24 5 views
1

Dans le fichier d'en-tête suivant i déclaré certaines fonctions:Erreur de compilation utilisant Eclipse

#ifndef _MY_INT_FUNCTIONS_H_ 
    #define _MY_INT_FUNCTIONS_H_ 



    int intFcn (const void *key, size_t table_size); 
    void intPrint (const void *key); 
    int intCompare (const void *key1, const void *key2); 


    #endif // _MY_INT_FUNCTIONS_H_ 

mais je reçois une erreur de compilation en disant:

« spécificateurs de déclaration prévu ou '...' avant 'size_t' "

concernant la fonction int intFcn.

en utilisant la version eclipse INDIGO.

aider quelqu'un?

+0

Je pense que vous devriez inclure stdlib.h – MByD

+0

Vous voulez C ou C++? –

+0

Un autre exemple des messages d'erreur horribles et inappropriés que la plupart des compilateurs C émettent. Pourquoi le compilateur ne dit-il pas "Type non reconnu" à la place? –

Répondre

4

En C++ size_t est déclaré dans l'en-tête <cstddef> dans l'espace de noms std.

#include <cstddef> 

int intFcn (const void *key, std::size_t table_size); 

En C (et en C++ trop), il est déclaré dans <stddef.h>:

#include <stddef.h> 

int intFcn (const void *key, size_t table_size); 
4

Pour size_t, vous devez:

#include <stddef.h> // in C 

ou:

#include <cstddef> // in C++