首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++,语法错误:在标识符'N0‘之前缺少';’

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

Stack Overflow用户
提问于 2014-11-09 07:22:25
回答 2查看 2.1K关注 0票数 0

我在windows上编译代码有问题。

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

错误253个错误C2146:语法错误:缺少';‘在标识符'N0’C:\ghost++\ghost\ohconnect.h 45之前 错误254错误C4430:缺少类型说明符- int假设。注意: C++不支持默认-int C:\ghost++\ghost\ohconnect.h 45。 错误255错误C4430:缺少类型说明符- int假设。注意: C++不支持默认-int C:\ghost++\ghost\ohconnect.h 45。 错误256个错误C2146:语法错误:缺少';‘在标识符'N’C:\ghost++\ghost\ohconnect.h 46之前 错误257错误C4430:缺少类型说明符- int假设。注意: C++不支持默认-int C:\ghost++\ghost\ohconnect.h 46。

诸若此类。我认为这都与我的头文件有关,类本身是用来连接到websockets的:

代码语言:javascript
复制
#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;,并且只为windows包含了<string>。但到目前为止,这一切都不起作用。我不想把所有的文件都放在这个问题上,因为它们实际上很长。以下是完整的源代码:头文件 主文件

我在这里做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-09 07:27:59

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

代码语言:javascript
复制
#include <cstdint>
票数 4
EN

Stack Overflow用户

发布于 2014-11-09 07:34:49

还请注意,尾随逗号在枚举中(在定义PONG = 0xa之后)仅在C++11中标准化,这是在C99中进行的更改。旧的编译器或运行模式遵循旧的1998/2003标准的编译器也可能会忽略这一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26825980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档