Вопрос: Как #define должен определять NULL на машинах, использующих ненулевой двоичный код для внутреннего представления нулевого указателя? Ответ: Программистам нет необходимости знать внутреннее представление(я) нулевых указателей, ведь об этом обычно заботится компилятор. Если машина использует ненулевой код для представления нулевых указателей, на совести компилятора генерировать этот код, когда программист обозначает нулевой указатель как "0" или NULL. Следовательно, определение NULL как 0 на машине, для которой нулевые указатели представляются ненулевыми значениями, так же правомерно, как и на любой другой, так как компилятор должен (и может) генерировать корректные значения нулевых указателей в ответ на 0, встретившийся в соответствующем контексте. |