Если я выделил память для int, мне будет (обычно) задано 4 байта. Насколько я понимаю, эти 4 байта составляют всю площадь этой переменной в памяти.Как и где хранится информация типа переменной?
Кроме того, если у меня есть указатель на этот int, он будет содержать адрес первого из 4 байтов.
Однако, как моя программа знает, что тип данных в этих четырех байтах состоит из одного int? И поскольку мой указатель содержит только этот адрес, который предположительно содержит только сырые данные, как он знает, что всякий раз, когда адрес, который он содержит, разыменовывается, его следует интерпретировать как int?
Где этот тип информации и как и когда программа обращается к ней?
'его следует интерпретировать как int'..well, поэтому это' int * ', а не' char * 'или' float * ' –
. Информация находится в исходном коде, а компилятор создает машину код для соблюдения спецификации в исходном коде. Задача компилятора - получить право доступа. –
Он не хранится нигде в скомпилированной программе. Это компилятор, который обрабатывает его. –