2011-08-24 2 views
1

В следующем файле заголовка я объявил некоторые функции:Ошибка компиляции с использованием затмения

#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_ 

, но я получаю ошибку компиляции, говоря:

«ожидаемых декларации спецификаторов или„...“до„size_t“ "

относительно функции int intFcn.

im использование версии Eclipse INDIGO.

Помогите кому-нибудь?

+0

Я думаю, вы должны включить stdlib.h – MByD

+0

Вы хотите C или C++? –

+0

Еще один пример ужасных и неподходящих сообщений об ошибках, выпущенных большинством компиляторов C. Почему компилятор просто не говорит «Unrecognized type» вместо этого? –

ответ

4

В C++ size_t объявлен в заголовке в пространстве имен std.

#include <cstddef> 

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

В С (и в C++ тоже), он объявлен в <stddef.h>:

#include <stddef.h> 

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

Для size_t, вам нужно:

#include <stddef.h> // in C 

или:

#include <cstddef> // in C++ 
Смежные вопросы