Почему утверждение 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 Основные типы]:
Обычный символ, подписанный символ и неподписанный символ — это три различных типа
int8_t
является целочисленным типом со знаком (в моей системе определяется как signed char
) а также char
а также signed char
разные типы, поэтому они разные.