为什么语句const int8_t* cstr = "asdf";
会出错
invalid conversion from ‘const char*’ to ‘const int8_t*’
int8_t*
和char*
不一样吗?
我在这里错过了一些微妙的东西吗?!
答案 0 :(得分:5)
const signed char*
与const char*
不同。检查您的编译设置,因为这可以解释它。 int8_t
总是(永远不会说永远不会=)至少在我见过的所有地方都被定义为signed char
。
答案 1 :(得分:4)
根据[18.4整数类型]:
typedef signed integer type int8_t; // optional
和[3.9.1基本类型]:
Plain char,signed char和unsigned char是三种不同的类型
int8_t
是有符号整数类型(在我的系统中定义为signed char
),char
和signed char
是不同的类型,因此它们是不同的。