c ++,语法错误:缺少';'在标识符'N0'之前

时间:2014-11-09 07:22:26

标签: c++ compiler-errors

我在Windows上编译代码时遇到了问题。

在基于Unix的系统上一切正常,但是当我在windows上编译它(目前使用visual studio 2010 express)时,我遇到以下错误:

  

错误253错误C2146:语法错误:缺少';'在标识符'N0'C之前:\ ghost ++ \ ghost \ ohconnect.h 45

     

错误254错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int C:\ ghost ++ \ ghost \ ohconnect.h 45

     

错误255错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int C:\ ghost ++ \ ghost \ ohconnect.h 45

     

错误256错误C2146:语法错误:缺少';'在标识符'N'C之前:\ ghost ++ \ ghost \ ohconnect.h 46

     

错误257错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int C:\ ghost ++ \ ghost \ ohconnect.h 46

等等。 我认为这与我的头文件有关,类本身是连接到websockets:

#ifndef OHConnect_H
#define OHConnect_H

//
// OHCONNECT
//

class CTCPClient;
class CBaseGame;
class CCommandPacket;
struct OHCHeader {
  unsigned header_size;
  bool fin;
  bool mask;
  enum opcode_type {
    CONTINUTATION = 0x0,
    TEXT_FRAME = 0x1,
    BINARY_FRAME = 0x2,
    CLOSE = 8,
    PING = 9,
    PONG = 0xa,
  } opcode;
  uint64_t N0;
  uint64_t N;
  uint8_t masking_key[4];
};

在我的.cpp文件中,我正在使用namespace std;,仅包含<string>用于Windows。 但到目前为止,这一切都没有奏效。我不想将整个文件放入问题,因为它们实际上很长。 这是完整的来源: Headerfile Mainfile

我在这里错了什么?

2 个答案:

答案 0 :(得分:4)

编译器不知道类型uint64_tuint8_t,添加:

#include <cstdint>

答案 1 :(得分:2)

另请注意,在C99中进行更改之后,枚举中的尾随逗号(在定义PONG = 0xa之后)仅在C ++ 11中标准化。较旧的编译器或按照旧的1998/2003标准运行的模式也可能会超过它。