Например TDA7294

Форум РадиоКот • Просмотр темы - Передать в функцию указатель, а получить указатель на массив
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср дек 31, 2025 07:45:58

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 49 ]    , , 3
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Передать в функцию указатель, а получить указатель на ма
СообщениеДобавлено: Чт июн 06, 2019 13:10:21 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 188
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1664
Рейтинг сообщения: 0
Мне не понравился вариант с упаковкой указателей в long.

А где вы такое видели? И как это возможно??? :shock:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передать в функцию указатель, а получить указатель на ма
СообщениеДобавлено: Чт июн 06, 2019 13:23:48 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18450
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
jcxz писал(а):
А где вы такое видели? И как это возможно???
да вот некто с ником jcxz недавно в теме написал:
Да очень просто:
Код:
u64 func()
{
  void *ptr1, *ptr2;
  ...
  return (u32)ptr1 | (u64)(u32)ptr2 << 32;
}
вызов:
u64 q = func();
void *ptr_1 = (void *)(u32)q;
void *ptr_2 = (void *)(u32)(q >> 32);

я могу ошибаться, но u64 для платформы ARM эквивалентно long (в 2 раза шире int). разве нет?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передать в функцию указатель, а получить указатель на ма
СообщениеДобавлено: Чт июн 06, 2019 14:20:18 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 268
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2723
Откуда: деревня в Тульской губернии
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ARV, ошибаетесь. long всегда 32 бита. 64 бита - long long или long long int.
Ну, по крайней мере, в стандарте C.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передать в функцию указатель, а получить указатель на ма
СообщениеДобавлено: Чт июн 06, 2019 14:57:42 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 256
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2089
Рейтинг сообщения: 0
u64 для платформы ARM эквивалентно long (в 2 раза шире int). разве нет?

Это правда только наполовину. Long действительно в 2 раза шире int, но минимальный размер int - 16 бит. Стандарт определяет именно минимум, для long он 32 бита, на том же x64 линуксе long уже 64 бита. Естественно это уже нужен и 64-х битный ARM...


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Передать в функцию указатель, а получить указатель на ма
СообщениеДобавлено: Чт июн 06, 2019 15:00:06 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18450
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
ПростоНуб писал(а):
long всегда 32 бита
я не уверен, что вы правы. во всяком случае в стандарте написано "long содержит минимум 32 бита".

но не это принципиально в моем сообщении - принципиально упаковывание двух значений в одно удвоенного размера "вручную".

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передать в функцию указатель, а получить указатель на ма
СообщениеДобавлено: Чт июн 06, 2019 15:10:56 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 188
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1664
Рейтинг сообщения: 0
я могу ошибаться, но u64 для платформы ARM эквивалентно long (в 2 раза шире int). разве нет?

Нет. typedef unsigned long long u64;


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передать в функцию указатель, а получить указатель на ма
СообщениеДобавлено: Чт июн 06, 2019 15:16:23 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18450
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
да уже выяснили - сколько можно?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передать в функцию указатель, а получить указатель на ма
СообщениеДобавлено: Чт июн 06, 2019 15:30:52 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 268
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2723
Откуда: деревня в Тульской губернии
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ARV, специально полез в стандарт. Да я не прав. Там есть рекомендация, но нет жёсткого ограничения. У MS long всегда 32 бита. На Linux может быть и 32, и 64, в зависимости от платформы. В любом случае, упаковка одного целого в другой, а тем более указателя, должна сопровождаться проверками sizeof, или можно нарваться на неприятности. И уж точно я согласен с тем, что такой упаковки следует избегать. Пользуйтесь union, если приспичило.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передать в функцию указатель, а получить указатель на ма
СообщениеДобавлено: Чт июн 06, 2019 15:35:46 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18450
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
ПростоНуб писал(а):
И уж точно я согласен с тем, что такой упаковки следует избегать.
ну хоть раз с моими возражениями согласился человек, считающий себя профессионалом :)
просто бальзам на душу. спасибо.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 49 ]    , , 3

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y