Насколько я знаю, единственная разница между типами переменных, такими как char
, int
и т.д., - это объем памяти, который они занимают. Я предполагаю, что они не играют никакой роли в регулировании того, что представляет собой переменная, которую они держат. Если это правда, в здесь, я видел следующее для strcmp
:
Функция strcmp сравнивает строку s1 с s2, возвращая значение, которое имеет тот же знак, что и разница между первым различной пары символов (интерпретируемых как неподписанные char объекты, затем продвигается до int).
Я хочу спросить, почему результат продвигается до int
? Поскольку char
сравниваются, их различие во всех случаях соответствует char
. Так не продвигает ли результат int
просто добавляя связку 0 в конце результата? Итак, почему это сделано?