реклама на сайте
подробности

 
 
> Банальный вопрос...(void*)0
promelectronshch...
сообщение Feb 16 2011, 16:33
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 8-11-10
Из: Украмна
Пользователь №: 60 714



Здравствуйте, помогите разобраться...
В многих проекта объявляется константа #define NULL (void*)0...
Зачем это делается? Мы как бы приводим тип указателя на 0 к типу void, зачем?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Twen
сообщение Feb 17 2011, 07:20
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543



Цитата
Нулевой указатель частенько применяется в аргументах функций, когда данный параметр опускается (в смысле не нужен).


Не совсем понятно выражение - нулевой указатель, правильнее сказать указатель типа void, который указывает на ячейку памяти с нулевым адресом, правильно?

Я правильно понял, это делается для того, чтобы передать в качестве параметра функции нулевой адрес:

#define NULL ((void*)0)

void x(char *y)
{
if(y==0)...
else...
}

void main(void)
{
x((char*)NULL);
}


Или второй вариант:
#define NULL 0

void x(char *y)
{
if(y==0)...
else...
}

void main(void)
{
x((char*)NULL);
}

В результате я получил два идентичные результата...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 00:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016