int8_t * и char *

Почему утверждение const int8_t* cstr = "asdf"; дает ошибку

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

не являются int8_t* а также char* так же?
Я что-то здесь упускаю?

3

Решение

const signed char* это не то же самое, что const char*, Проверьте настройки компиляции, потому что это объясняет это. int8_t всегда (никогда не говори никогда =) по крайней мере везде, где я видел) определяется как signed char,

5

Другие решения

Согласно [18.4 Целочисленные типы]:

typedef signed integer type int8_t; // optional

И [3.9.1 Основные типы]:

Обычный символ, подписанный символ и неподписанный символ — это три различных типа

int8_t является целочисленным типом со знаком (в моей системе определяется как signed char) а также char а также signed char разные типы, поэтому они разные.

4