LINUX.ORG.RU

Ответ на: комментарий от Yareg

оно implementation defined на уровне ассемблерного кода. Поведение С-кода зафиксировано стандартом и не должно меняться. Если меняется - компилятор не соответствует стандарту.

gaga
()
Ответ на: комментарий от gaga

Про приведение null pointer к int в стандарте вроде бы ничего нет. Есть только, что любой указатель можно привести к int и результат будет implementation defined.

Yareg ★★★
()
Ответ на: комментарий от toady2

Где этот абзац мне запрещает определять null-pointer как (void*)(-1)?

адрес всегда неотрицательное число

cvs-255 ★★★★★
()
Ответ на: комментарий от Yareg

Дык null pointer же, а не константы NULL. Т.е.

void* p = malloc(MORE_THAN_WE_HAVE);
int a = (int)p; // impementation defined
int b = (int)NULL; // 0

gaga
()

Стандарт - гарантирует. Некоторые компиляторы на экзотических платформах могут не отвечать стандартам языка С.

Legioner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.