Re: NULL или 0 ?
От: adontz Грузия http://adontz.wordpress.com/
Дата: 08.12.03 08:28
Оценка:
Здравствуйте, Аноним, Вы писали:

А>по C NULL машинно зависим т.е. может и не быть в представлении машины нулем,

А>а Страуструп пишет что можно безболезненно менять 0 на NULL. Что делать?

Ниего не делать Конвертация из 0 в машинное представление нулевого указателя осуществляеться на основе типа константы
(int)0 всегда останется нулём (по умолчанию все числовые константы имеют тип int, если не указано другое)
(int *)0 будет преобразовано в машинное представление нулевого указателя.
Обычно преобразование типа параметра не шаблонной функции осуществляется на основе её прототипа. так что в
memcmp(0,0,0)

Первые 2 параметра это указатели, а третий(последний) это число.
К тому же вроде как
#define NULL 0

а не
#define NULL ((void *)0)

Так что NULL это просто более удобное и понятное в конкретном контексте название.
A journey of a thousand miles must begin with a single step © Lau Tsu
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.