【问题标题】:error: invalid suffix "x" on integer constant [closed]错误:整数常量上的无效后缀“x”[关闭]
【发布时间】:2014-03-23 20:35:08
【问题描述】:

我收到以下代码的上述错误:

#include "iostream"

#include <stdint.h>
#define CONTINUE 0x00
#define END 0x80
#define POWER7 0x

int main(){
        uint8_t *s = new uint8_t[ 10 ];
        int res = 0;
        int t = 2;
        res=t & POWER7;
        s [ 0]= ( t >POWER7 ? CONTINUE : END ) | res ;
        return 0;
}

这段代码运行良好,但在做了一些修改后,出现了错误。由于我是 c++ 新手,所以完全无法理解错误。

错误:

smple.cpp:11:10: error: invalid suffix "x" on integer constant
smple.cpp:12:15: error: invalid suffix "x" on integer constan

t

【问题讨论】:

  • 您当然会收到该消息;你认为0x 是什么意思?
  • (检查#define POWER7,也许你没有使用那个宏/损坏了它)

标签: c++


【解决方案1】:

您使用了不正确的数字文字

#define POWER7 0x

在语句中

   res=t & POWER7;
    s [ 0]= ( t >POWER7 ? CONTINUE : END ) | res ;

根据 C++ 标准的十六进制整数字面量定义如下:

hexadecimal-literal:
0x hexadecimal-digit
0X hexadecimal-digit
hexadecimal-literal hexadecimal-digit

即在 0x 或 0X 之后必须至少有一个十六进制数字。

【讨论】:

  • 我已经复制了你的代码,仍然出现同样的错误。
  • @user2422669 你复制并粘贴了哪些代码?!
  • 因为我的代码是一样的,还是报错。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-12
  • 1970-01-01
  • 1970-01-01
  • 2013-10-21
  • 2018-09-11
  • 1970-01-01
相关资源
最近更新 更多