Я получаю упомянутую ошибку для следующего кода:
#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
Вы используете неверный числовой литерал
#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 должна быть хотя бы одна шестнадцатеричная цифра.
Других решений пока нет …