Если не использовать указатель за пределами функции, в которой объявленна unsigned int a, и внимательно следить за размером элемента памяти (вспомните про разные архитектуры), то это допустимо.
Только вот не очень понятно, зачем.
Есть функция, которая принимает unsigned char*, а затем работает с октетами. Мне нужно передать туда 3 октета.
Или всё-таки лучше передать их туда по одному
Знаешь, проект, в которым я сейчас работаю, начинали писать ещё в Досе. А не далее как на этой неделе я участвовал в его портировании на IBM system P. И нашёл у себя же несколько глюков, связанных другим порядком байтов. Так что не думать о таких вещах можно лишь при написании совершенно ненужных программ. Кроме того, это стиль, привычка делать всё правильно. Не понадобится сейчас - поможет в другом, более крупном проекте.
> И нашёл у себя же несколько глюков, связанных другим порядком байтов.
Тоесть ты зная о эндианах сознательно игнорировал, а когда пришел момент легко исправил? :) Браво ) Думаешь посля этого в пределах одной платформы будет опасным такого рода операция?
Кроме того, это стиль, привычка делать всё правильно.
Вопрос лишь в нужности и наличию здравого смысла при использовании этого... Учитывая что 90% низкоуровневых программеров сидят на х86 под виндой/линуксом обсуждать вопрос крайней необходимости мне видится бесмысленным... Да учитывать при портировании надо. А так.... нафик не нужно :)
З.Ы. Большинство ембедед платформ обладают встроеным ВМ, и им не приходится использовать подобные конструкции...
> Действительно каждый второй, а то и первый каждый день пришет софт под мипс.
Идиот, писать софт общего назначения «под платформу» - это очень убого и недальновидно. Особенно сейчас, когда популярны всякие маемо да ведроиды. То ли еще будет.
Ещё раз: начинало всё это писАться на Досе, и, естественно, только для писюков. Ни о каких других платформах речь даже и не шла. Я тогда даже и не знал, как нужно писАть платформо-независимый код :-)
а когда пришел момент легко исправил? :)
В том то и дело, что очень даже нелегко. Такие баги, как правило, ОЧЕНЬ трудно вылавливать, т.к. частенько проявляются очень далеко от того места, где произошли. Одну почти целый ловил.
Вопрос лишь в нужности и наличию здравого смысла при использовании этого... Учитывая что 90% низкоуровневых программеров сидят на х86 под виндой/линуксом обсуждать вопрос крайней необходимости мне видится бесмысленным...
А несколько лет назад 99%. А очень скоро попрут дешёвые и малопотребляющие неттопы, лаптопы, планшеты и прочее на ARM'ах. И тогда тебе нужно будет или чистить свою программу от платформо-зависимых глюков, громко при этом матерясь (а это я обещаю по своему опыту), или выбрасывать её на помойку.
Да, и напоследок: строка «Навык написания платформо-независимого кода» очень красиво смотрится в резюме :-)))
Ок, расскажешь это индусам которые пишут ИОС, а так же Джуни-перцам, которые пишут ДжунОС, а так же гуглам которые пишут ГуглоОС, а так же еще туевой туче пацанов которые писали/пишут прошивки для контроллеров :)
Если вы настолько глупы, что не понимаете что софт для «всякие маемо да ведроиды» пишется исключительно на языках высокого уровня. А те кто пишут ВМы и всякие РТЕ плевали на кросплатформенность, так как они точат _ПОД_ПЛАТФОРМУ_
> А очень скоро попрут дешёвые и малопотребляющие неттопы, лаптопы, планшеты и прочее на ARM'ах.
Ага, и все начнут писать на асме/С/С++ .... не смешите меня... все будет писаться(как и сейчас пишется) на всяких джавах и подобных высокоуровневыъ клонах....
Вы отвечали на пост с вопросом цитирую: «назовите мне широко-используемые big-endian платформы»...
В чем же смысл вашего ответа ?????? Я могу вспомнить лабы в универе, где был старый убитый чемоданчик-эвм который был кстати 16-ти разрядный и биг-ендиан :)... Так что же с этого ?
Ваш ответ невалиден.... спарк не является «широко-используемая big-endian платформа».
Fail.
Кто запрещает то, бери и вспоминай.
Смысл моего ответа в том, что здравый смысл в написании переносимого кода таки есть. Хотя тебе это почему-то видится бессмысленным...
И да, троллят в другом разделе этого форума.
Ок, расскажешь это индусам которые пишут ИОС, а так же Джуни-перцам, которые пишут ДжунОС, а так же гуглам которые пишут ГуглоОС, а так же еще туевой туче пацанов которые писали/пишут прошивки для контроллеров :)
Как ИОС и ДжунОС относятся к переносимости кода??
И как микроконтроллеры относятся к переносимости кода.
Ты немного путаешь системный код и код приложений.
Ага, и все начнут писать на асме/С/С++ .... не смешите меня... все будет писаться(как и сейчас пишется) на всяких джавах и подобных высокоуровневыъ клонах....
Сколько строк «переносимого» кода написали лично вы из ИОСа который пыпчит тока на мипсе ?
Ок... Как вы думаете, сколько строк «переносимого кода» есть в сорцах ИОСа ? :)