int8_t *和char *

时间:2012-09-12 05:43:04

标签: c++ char-pointer

为什么语句const int8_t* cstr = "asdf";会出错

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

int8_t*char*不一样吗? 我在这里错过了一些微妙的东西吗?!

2 个答案:

答案 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),charsigned char是不同的类型,因此它们是不同的。