*中int8_t和字符*(int8_t* and char*)

2019-09-22 07:45发布

为什么声明const int8_t* cstr = "asdf"; 给出错误

invalid conversion from ‘const char*’ to ‘const int8_t*’

int8_t*char*一样吗? 我失去了一些微妙的东西在这里?

Answer 1:

const signed char*是不一样的const char* 。 检查你的编译设置,因为这可以解释它。 int8_t总是(永不说永不=)至少随处我见过)定义为signed char



Answer 2:

根据[18.4整数类型]:

typedef signed integer type int8_t; // optional

和[3.9.1基本类型】:

平原字符,符号的字符,和unsigned char三种不同类型

int8_t是一个带符号的整数类型(定义为在我的系统signed char和) charsigned char是不同的类型,因此它们是不同的。



文章来源: int8_t* and char*