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

 
 
> преобразование указателя, возможно ли такое
TigerSHARC
сообщение Sep 4 2012, 11:31
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



есть стандартная функция ioctl (функция области ядра в Linux).
Эта функция должна принимать указатель и модифицировать адрес на который он указывает. Но проблема в том, что прототип функции таков, что функция может принимать только unsigned int значение.
А посему возникает вопрос: можно ли в принципе преобразовать адрес указателя в unsigned int и обратно?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SSerge
сообщение Sep 4 2012, 19:59
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



В C99 предлагается определять в файле stdint.h специальные типы intptr_t и uintptr_t :
Цитата
7.18.1.4 Integer types capable of holding object pointers
1 The following type designates a signed integer type with the property that any valid
pointer to void can be converted to this type, then converted back to pointer to void,
and the result will compare equal to the original pointer:
intptr_t
The following type designates an unsigned integer type with the property that any valid
pointer to void can be converted to this type, then converted back to pointer to void,
and the result will compare equal to the original pointer:
uintptr_t
These types are optional.

Но они не обязательны, а главное, так саму проблемму всё равно не решить, можно только спрятать её поглубже.
Реализация функции всё равно должна знать разрядность данных с которыми работает.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 03:46
Рейтинг@Mail.ru


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