错误:整数常量上的后缀“x”无效

时间:2014-03-23 20:35:09

标签: c++

我正在为以下代码解决上述错误:

#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

1 个答案:

答案 0 :(得分:3)

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

#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之后必须至少有一个十六进制数字。