2013-10-01 3 views
3

Хорошо, я знаю, что это вопрос простой, но для жизни я не могу понять, почему я продолжаю получать это сообщение. Я использую eclipse V3.8 на ubuntu linux V13. 04Продолжает говорить, что uint16 не объявлен

Compile говорит «unit16 не был объявлен

#ifndef ENIGMA_2C_H_ 
#define ENIGMA_2C_H_ 

class Enigma2C { 

public: 
    static bool checkOptionKey(uint16 option, char *key); 
    static bool encrypt (char *inString, char *outString); 
    static bool decrypt (char *inString, char *outString); 
}; 

#endif 
+9

'uint16' не является стандартным типом. – chris

+0

Скорее всего, это typedef или define, и вам не хватает определения, потому что вы не включили заголовок. – ApplePie

+1

Вы считали, что 'uint16' не был объявлен? –

ответ

0

Вам нужно включить inttypes.h АНФ тип uint16_t, т. е

#ifndef ENIGMA_2C_H_ 
#define ENIGMA_2C_H_ 

#include <inttypes.h> 

class Enigma2C { 

public: 
    static bool checkOptionKey(uint16_t option, char *key); 
    static bool encrypt (char *inString, char *outString); 
    static bool decrypt (char *inString, char *outString); 
}; 

#endif 
9

Использование uint16_t в cstdint, который представлен на C++ 11. Или определите свой собственный тип.

Для C, это stdint.h, который представлен на C99.

+0

Итак, вы хотите сказать, что в C++ я могу быть уверен, что 'uint16_t' существует, только если компилятор поддерживает C++ 11 в заголовке' cstdint', но для C я могу быть уверен, что он существует, если компилятор поддерживает C99 в 'stdint .h' ?? – Arkady

Смежные вопросы