为什么声明const int8_t* cstr = "asdf";
给出错误
invalid conversion from ‘const char*’ to ‘const int8_t*’
不int8_t*
和char*
一样吗? 我失去了一些微妙的东西在这里?
为什么声明const int8_t* cstr = "asdf";
给出错误
invalid conversion from ‘const char*’ to ‘const int8_t*’
不int8_t*
和char*
一样吗? 我失去了一些微妙的东西在这里?
const signed char*
是不一样的const char*
。 检查你的编译设置,因为这可以解释它。 int8_t
总是(永不说永不=)至少随处我见过)定义为signed char
。
根据[18.4整数类型]:
typedef signed integer type int8_t; // optional
和[3.9.1基本类型】:
平原字符,符号的字符,和unsigned char三种不同类型
int8_t
是一个带符号的整数类型(定义为在我的系统signed char
和) char
和signed char
是不同的类型,因此它们是不同的。