我正在为以下代码解决上述错误:
#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
吨
答案 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之后必须至少有一个十六进制数字。