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

 
 
> Работа с long int
Skaf
сообщение Jun 20 2009, 11:25
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 228
Регистрация: 4-06-09
Пользователь №: 49 940



Всем привет. Пишу на Си (WinAVR) для AVR. Есть у меня 32-х битная переменная

unsigned long int A;

Мне надо передать ее по SPI протоколу. Как это эффективнее всего сделать?
Что-то типа

spi_master_transmit(A);
spi_master_transmit(A>>8);
spi_master_transmit(A>>16);
spi_master_transmit(A>>24);

является ли это наиболее эффективным методом?

Сообщение отредактировал Skaf - Jun 20 2009, 11:26
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kurtis
сообщение Jun 23 2009, 10:09
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Так а в чем глубокий смысл использования size_t? Почему плохо писать просто int?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jun 23 2009, 13:42
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Глубокого смысла я не вижу и если заглянуть в stddef.h (gcc), то можно увидеть, что этот тип определён как
Код
typedef __SIZE_TYPE__ size_t;
а __SIZE_TYPE__ в свою очередь зависит от платформы VAX, BSD и т.д. и разрядности процессора.
Таким образом получается, что размерность типа size_t, как и типа int платформозависима.
И я исходя из этих соображений с осторожностью применяю size_t и не использую int в принципе.
До глубинного смысла НИКТО никогда не докопается, т.к. всё свёдётся к недавнему спору о типе bool для СИ.
В конечном итоге Ваше личное соглашение с самим собой должно быть достигнуто относительно этого и Вы должны будете ему следовать.
И ещё иногда size_t может быть мал для некоторых случаев. Так что панацеи не существует.
Больше на эту тему мне и сказать нечего...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 24th August 2025 - 10:53
Рейтинг@Mail.ru


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