По какой причине gcc добавляет char * (например, "STRING") и char (например, "C") в качестве указателей?
const char *ccc = "Test1";
const char t = 'T';
const char *res = ccc + t;
printf("%s, %p, %d, %p\n", res, ccc, t, res);
выходы
, 0x8048d97, 84, 0x8048deb
Я имею в виду, вы можете указать на документацию, стандартные спецификации или статью? Могу ли я контролировать или отключить это поведение?
UPD: почему я спрашиваю и что неожиданно, так это
CString() + 'c'
работает как
(char*)CString() + (char)char_var
когда компилятор не может найти подходящий оператор +. Я подумал, может быть, отключить автоматическую конкатенацию и найти все такие места (в устаревшем коде). Но в основном я просто хотел найти точную документацию по поведению.