我不知道为什么g ++编译器在编译这段代码时会给我错误:
typedef unsigned char BYTE;
typedef BYTE* BYTE_PTR;
const BYTE myByte[] = {0x00, 0xFF};
const BYTE_PTR myByte_ptr = myByte;
编译器给我这个错误:
error: invalid conversion from ‘const BYTE* {aka const unsigned char*}’ to ‘BYTE_PTR {aka unsigned char*}’ [-fpermissive]
但是这段代码没问题
const BYTE myByte[] = {0x00, 0xFF};
const unsigned char* myByte_ptr = myByte;
答案 0 :(得分:1)
重复typedef pointer const weirdness
简而言之:
const BYTE_PTR
实际上是unsigned char* const
,但不是const unsigned char*
。
这就是编译器抱怨的原因。