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

 
 
> Что означает этот код?
RW6MKA
сообщение Mar 8 2014, 15:05
Сообщение #1


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

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Здравствуйте уважаемые форумчане. Возник вопрос при оптимизации кода. Было
Код

                data[0] = w1_receive_byte();//читаем два байта с температурой
        data[1] = w1_receive_byte();
            //загоняем в двух байтную переменную
        temp = data[1];
        temp = temp<<8;
        temp |= data[0];

Подсказали что лучше использовать такое выражение
Код
        *((char *)&Temp;) = w1_receive_byte();
        *((char *)&Temp; + 1) = w1_receive_byte();

Вот никак не могу понять смысла этого кода. Я так понимаю что * и & это операции над указателями , а () приведение к типу но....
Вообщем если не трудно объясните начинающему подробно смысл сей конструкции.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Mar 9 2014, 07:30
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Обычно из таких - низкоуровневых - функций данные в плавающей точке все же не вытаскивают. Но если очень хочется, то можно.
Другой вопрос, нужен ли будет на деле этот float потом.
Go to the top of the page
 
+Quote Post
RW6MKA
сообщение Mar 9 2014, 08:20
Сообщение #3


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

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Цитата(aaarrr @ Mar 9 2014, 11:30) *
Обычно из таких - низкоуровневых - функций данные в плавающей точке все же не вытаскивают. Но если очень хочется, то можно.
Другой вопрос, нужен ли будет на деле этот float потом.

Хорошо, может это стрельба по воробьям из пушки. Какой тип вы для этой функции и переменной порекомендуете, если в результате функция должна вернуть число от -45,5 до 45,5 ?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- RW6MKA   Что означает этот код?   Mar 8 2014, 15:05
- - _Артём_   Цитата(RW6MKA @ Mar 8 2014, 19:05) Код *...   Mar 8 2014, 15:15
- - RW6MKA   А более подробно можно. Конкретно по каждому знаку...   Mar 8 2014, 15:29
|- - _Артём_   Цитата(RW6MKA @ Mar 8 2014, 19:29) А боле...   Mar 8 2014, 15:37
|- - RW6MKA   Цитата(_Артём_ @ Mar 8 2014, 19:37) Берёт...   Mar 8 2014, 15:58
|- - Harvester   Цитата(RW6MKA @ Mar 8 2014, 19:58) Вот эт...   Mar 8 2014, 16:25
|- - RW6MKA   Цитата(Harvester @ Mar 8 2014, 20:25) Ука...   Mar 9 2014, 03:47
|- - aaarrr   Цитата(RW6MKA @ Mar 9 2014, 07:47) То ест...   Mar 9 2014, 04:09
|- - RW6MKA   Цитата(aaarrr @ Mar 9 2014, 08:09) По при...   Mar 9 2014, 07:11
- - aaarrr   Цитата(RW6MKA @ Mar 8 2014, 19:05) Подска...   Mar 8 2014, 15:36
- - RW6MKA   Ну вроде экономия памяти при компиляции. Можно кон...   Mar 8 2014, 15:54
- - aaarrr   * - указатель Без лишней памяти лучше будет напис...   Mar 8 2014, 15:57
- - Harvester   Ужас какой-то. Это как раз тот случай, когда досто...   Mar 8 2014, 16:01
|- - SSerge   Цитата(Harvester @ Mar 8 2014, 23:01) Ужа...   Mar 8 2014, 16:33
- - aaarrr   Цитата(RW6MKA @ Mar 8 2014, 19:58) Вот эт...   Mar 8 2014, 16:02
|- - RW6MKA   Цитата(aaarrr @ Mar 8 2014, 20:02) Есть т...   Mar 8 2014, 16:13
|- - aaarrr   Цитата(RW6MKA @ Mar 9 2014, 12:20) Какой ...   Mar 9 2014, 08:28
|- - SM   Цитата(RW6MKA @ Mar 9 2014, 12:20) от -4...   Mar 9 2014, 08:32
- - RW6MKA   Во общем из советов я прихожу к выводу, что float ...   Mar 9 2014, 08:56
- - aaarrr   Могут. На 8-16 битных архитектурах ничем не отлича...   Mar 9 2014, 09:13
- - RW6MKA   Понятно. Тогда с учетом того, что я пишу код в AVR...   Mar 9 2014, 09:35
- - aaarrr   Правильнее будет int16_t, а не uint - результат ве...   Mar 9 2014, 09:38
|- - SM   Цитата(aaarrr @ Mar 9 2014, 13:38) Правил...   Mar 9 2014, 09:44
|- - RW6MKA   Цитата(aaarrr @ Mar 9 2014, 13:38) Правил...   Mar 9 2014, 09:48
|- - aaarrr   Цитата(RW6MKA @ Mar 9 2014, 13:48) Нет, з...   Mar 9 2014, 10:06
|- - RW6MKA   Цитата(aaarrr @ Mar 9 2014, 14:06) Но есл...   Mar 9 2014, 10:15
- - Xenia   Судя по стартовому посту темы, вопрос касался опти...   Mar 9 2014, 10:34
|- - SM   Цитата(Xenia @ Mar 9 2014, 14:34) т.е. ст...   Mar 9 2014, 10:41
||- - Xenia   Цитата(SM @ Mar 9 2014, 14:41) Вот это, к...   Mar 9 2014, 10:49
||- - SM   Цитата(Xenia @ Mar 9 2014, 14:49) Но тогд...   Mar 9 2014, 11:07
|- - aaarrr   Цитата(Xenia @ Mar 9 2014, 14:34) Судя по...   Mar 9 2014, 10:46
|- - _Артём_   Цитата(aaarrr @ Mar 9 2014, 14:46) Во-пер...   Mar 9 2014, 10:50
|- - aaarrr   Цитата(_Артём_ @ Mar 9 2014, 14:50) В 21 ...   Mar 9 2014, 10:58
|- - _Артём_   Цитата(aaarrr @ Mar 9 2014, 14:58) У Вас ...   Mar 9 2014, 11:08
|- - SM   Цитата(_Артём_ @ Mar 9 2014, 15:08) что M...   Mar 9 2014, 11:11
- - adnega   Господа программисты, особенно начинающие, обратит...   Mar 9 2014, 11:21
|- - SM   Цитата(adnega @ Mar 9 2014, 15:21) union ...   Mar 9 2014, 11:26
|- - aaarrr   Цитата(SM @ Mar 9 2014, 15:26) Прямое сре...   Mar 9 2014, 11:30
- - RW6MKA   Уважаемые форумчане, перестаньте в присутствии нов...   Mar 9 2014, 12:21
- - aaarrr   Не обращайте внимания, день сегодня такой... выход...   Mar 9 2014, 12:26


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

 


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


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