-
- Я как начал диверсиицироваться от 8разрядников к 32разрдникам, так и перешел на такую запись. Олдфаг(27 знак., 21.04.2017 07:57, )
- Я начинал с 16-разрядных! Потом диверсифицировался в сторону 8 и 32 :-) - SciFi(21.04.2017 10:36)
- В начале было слово, и слово было два байта, а больше ничего не было. - vmp(22.04.2017 10:08, ссылка)
- "В начале было слово, и слово было глагол, и глагол был чебурахнуться" :) - mut(22.04.2017 10:22, youtube)
- А байты были в пять бит. - Вова(22.04.2017 10:11)
- В начале было слово, и слово было два байта, а больше ничего не было. - vmp(22.04.2017 10:08, ссылка)
- Я начинал с 16-разрядных! Потом диверсифицировался в сторону 8 и 32 :-) - SciFi(21.04.2017 10:36)
- 12 chars vs 7, или даже 3 в i16/s16... ну и веселая отладка/перепиливание кода при переносе на другой контроллер/архитектуру, особенно структуры пакетов... мины лучше наперед не закладывать... - ferrum(20.04.2017 23:27)
- Когда мне нужно, чтобы компилятор использовал максимально эффективные целые, то пишу просто int или uint, пусть сам выбирает, что ему эффективнее, 8 (вряд ли), 16, 32 или сколько-там бит. А где размер имеет значение, например, в структуре данных, Nikolay_Po(221 знак., 20.04.2017 12:50)
- Это не вопрос из области программирования. Приблизительный ответ есть в известном интервью Страуструпа. - fk0(20.04.2017 12:25)
- Ты свою картинку распиши тем же шрифтом но с полным названием, заплати за материалы, изготовление и установку из своего кармана чтобы понятно было, тогда поговорим про инты. Менеджер детектед. Те кто прогу хоть раз отлаживал такие вопросы не Codavr(8 знак., 20.04.2017 12:21)
- Угу. gdb определения твоих u16 -- не знает, например, и видит как unsigned short. - fk0(20.04.2017 12:35)
- И чо? Я не знаю японского языка и не умею играть на скрипке. - Codavr(20.04.2017 12:46)
- Угу. gdb определения твоих u16 -- не знает, например, и видит как unsigned short. - fk0(20.04.2017 12:35)
- Потому-что uint32_t однозначно определяет суть , лучше него только u32. А всякая хрень типа short и word идет в пень. - plainuser(20.04.2017 12:15)
- u32 как тип фу, u32 годно лишь на префикс переменной или на крайняк как тег для union. Только уважительное uint32_t - Petrovich(20.04.2017 12:25, )
- Не , на тег не годится. - plainuser(20.04.2017 15:04)
- u32 как тип фу, u32 годно лишь на префикс переменной или на крайняк как тег для union. Только уважительное uint32_t - Petrovich(20.04.2017 12:25, )
- И ведь главное, что сам ты теперь тоже перейдешь на битовое объявление, правда? Вздохнёшь, и начнешь перелопачивать старые проекты :) - Petrovich(20.04.2017 12:01, )
- Я всю эту хню давно себе подменил на u8/s8/u16/s16/u32/s32/u64/s64/u128/s128 - MBedder(20.04.2017 10:57)
- На собственном опыте убедился, что существуют люди, которые могут назвать локальную переменную u8 и пр. И поскольку у меня нет аргументов заставить их этого не делать, я тоже перешёл полностью на типы stdint.h - =AlexD=(21.04.2017 06:42)
- У меня таких людей нет, не было, и не будет - я их отстреливаю еще в утробе матери :)) - MBedder(21.04.2017 10:26)
- stdint классно, но лишние буквы просто пучат :( - vllv(21.04.2017 07:03)
- Такие замены имеют ряд очевидных негативных последствий. В рамках поделок одного дня не проявляющихся. Во-первых не все типы имеют фиксированную разрядность (а здесь она уже зафиксирована). И не все процессоры умеют легко работать с любой fk0(537 знак., 20.04.2017 12:30)
- В моих текстах ВСЕ типы имеют фиксированную разрядность, ибо тот конкретный процессор, который работает в моем конкретном изделии, тоже, как ни странно, имеет фиксированную разрядность. Со сторонним кодом типа стеков/FS/RTOS совместимость MBedder(90 знак., 20.04.2017 13:36)
- В языке C пространства имён типов и переменных разные. Из-за этого #define (вместо typedef) -- верный способ нарваться на грабли, когда замена произойдёт не в том контексте. Хоть базовые типы и являются зарезервированными ключевыми словами, твои fk0(255 знак., 21.04.2017 00:30)
- Возражаю, ваша честь. Не всегда можно знать разрядность переменной, если она указатель. И дефайн как совместитель типов подведет в самый неподходящий момент - Petrovich(20.04.2017 15:25, )
- Разрядность указателей я знаю ВСЕГДА, и совмещение типов дефайнами вместо лишних тайпдефов меня НИКОГДА не подводила. А плясать под дудку съехавших с катушек апологетов обязательной переносимости кода с PIC12 на Xeon я буду лишь тогда, когда сам MBedder(16 знак., 20.04.2017 16:35)
- Пик не переносится никуда в силу своей кривизны. Поэтому да, нужно забить и кодить на птичьем языке :-) - SciFi(20.04.2017 16:37)
- У меня все переносилось между пик18, арм, пик24, и х86... - fk0(20.04.2017 22:52)
- "Жить захочешь - не так раскорячишься"© - SciFi(20.04.2017 23:02, youtube)
- Видел я как-то твой код - ничего другого, кроме как "ананкастический синдром" он мне не напомнил, Уоррен ты наш Корнелиус :)) --> - MBedder(20.04.2017 22:59, ссылка)
- +1. Заметил для себя, что усилия, затрачиваемые на обеспечение переносимости, больше, чем на, собственно, код. За ссылку на повесть спасибо, уместно. Не так давно её прочёл. - Nikolay_Po(21.04.2017 11:31)
- Иногда просто нет выбора - одна и та-же библиотека должна работать сразу на нескольких устройствах, например 8битном, 32битном и на PC. - =AlexD=(21.04.2017 11:43)
- Фигня, дело привычки. Для тех, кто реально переносит код туда-сюда, уверен, напряга нет. - SciFi(21.04.2017 11:34)
- Таскать Вам не перетаскать! (с) (народное пожелание) - Крок(21.04.2017 11:44)
- +1. Заметил для себя, что усилия, затрачиваемые на обеспечение переносимости, больше, чем на, собственно, код. За ссылку на повесть спасибо, уместно. Не так давно её прочёл. - Nikolay_Po(21.04.2017 11:31)
- У меня все переносилось между пик18, арм, пик24, и х86... - fk0(20.04.2017 22:52)
- Пик не переносится никуда в силу своей кривизны. Поэтому да, нужно забить и кодить на птичьем языке :-) - SciFi(20.04.2017 16:37)
- Разрядность указателей я знаю ВСЕГДА, и совмещение типов дефайнами вместо лишних тайпдефов меня НИКОГДА не подводила. А плясать под дудку съехавших с катушек апологетов обязательной переносимости кода с PIC12 на Xeon я буду лишь тогда, когда сам MBedder(16 знак., 20.04.2017 16:35)
- Видел такой bool, где TRUE == 0, а FALSE == 1... вот до чего самодельные типы доводят. - fk0(20.04.2017 12:34)
- Толстовец? "Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему". Истина одна, а заблуждений (сиречь ошибок) - много. - vmp(22.04.2017 10:11)
- Философично :) А это случайно не от return ErrorCode; //0 if OK происходит? - Николай Коровин(22.04.2017 12:21)
- SNMPv2-TC: true (1), false (2) SciFi(167 знак., 21.04.2017 11:44)
- А как надо? - Petrovich(20.04.2017 15:19, )
- обычно 0 - лож, а не 0 - истина. Nikolay801_(161 знак., 20.04.2017 15:49)
- Просто у меня исторически задефайнено тру 1==1, а фолз 1==0 - Petrovich(20.04.2017 16:02, )
- обычно 0 - лож, а не 0 - истина. Nikolay801_(161 знак., 20.04.2017 15:49)
- Толстовец? "Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему". Истина одна, а заблуждений (сиречь ошибок) - много. - vmp(22.04.2017 10:11)
- В моих текстах ВСЕ типы имеют фиксированную разрядность, ибо тот конкретный процессор, который работает в моем конкретном изделии, тоже, как ни странно, имеет фиксированную разрядность. Со сторонним кодом типа стеков/FS/RTOS совместимость MBedder(90 знак., 20.04.2017 13:36)
- я вот тоже подменял с незапамятных времен на BYTE, WORD, DWORD... А потом майкрософт додумался до этого же. И моя подмена стала конфликтовать с подменой студии. Так что зарефакторил все на stdint - abivan(20.04.2017 11:49)
- Давно пора всю эту хню заменить на smallint, integer, longint :-)) - Крок(20.04.2017 11:42)
- А чем плохо BYTE, SBYTE, WORD, SWORD, DWORD, SDWORD? Я себе во все проекты эти тайпдефы пихаю. - POV_(20.04.2017 11:46, )
- Это была попытка пошутить. - Крок(20.04.2017 13:18)
- Ничего подобного. Это как раз то, что сделано в С99. С каждой платформой(компилятором) идет файл stdint. А до С99 типы для разных платформ приходилось переопределять самому. Просто это стало теперь не актуально. Можно конечно переопределить abivan(47 знак., 20.04.2017 13:27)
- Ну ЁВМ! Это я перечислил типы, используемые в Паскале. - Крок(20.04.2017 13:28)
- "real" забыл :)) - MBedder(20.04.2017 15:06)
- real - must die! Кто такое придумал, 6 байт на число? - Крок(20.04.2017 15:36)
- Хе-хе, Паскаль увековечил чью-то дурь :-) - SciFi(20.04.2017 13:32)
- "real" забыл :)) - MBedder(20.04.2017 15:06)
- Ну ЁВМ! Это я перечислил типы, используемые в Паскале. - Крок(20.04.2017 13:28)
- Ничего подобного. Это как раз то, что сделано в С99. С каждой платформой(компилятором) идет файл stdint. А до С99 типы для разных платформ приходилось переопределять самому. Просто это стало теперь не актуально. Можно конечно переопределить abivan(47 знак., 20.04.2017 13:27)
- Word - это ересь. Кажись, мелкософт эту хрень придумал в своё время, сделав вид, что 16-разрядный 8086 - это венец творения. - SciFi(20.04.2017 12:09)
- ? сразу видно скока вешать в граммах. - POV_(20.04.2017 12:12, )
- Это не граммы. Это то ли фунты, то ли унции. Я в них путаюсь. - SciFi(20.04.2017 12:19)
- ? сразу видно скока вешать в граммах. - POV_(20.04.2017 12:12, )
- Это была попытка пошутить. - Крок(20.04.2017 13:18)
- А чем плохо BYTE, SBYTE, WORD, SWORD, DWORD, SDWORD? Я себе во все проекты эти тайпдефы пихаю. - POV_(20.04.2017 11:46, )
- Я бы тоже подменил, но это кощунство. Это как вместо "Мой дядя самых честных правил, когда не в шутку занемог..", написать "дядя заболел" - IBAH(20.04.2017 11:19)
- Примерописатели для STM8 подменили, и вряд ли кто возвращает обратно. - vllv(20.04.2017 11:21)
- В почтенном возрасте не растерял тягу к бунтарству. Это прекрасно, ящетаю :-) - SciFi(20.04.2017 11:05)
- Просто я не в меру ленив, в меру рационален, и ниразу не программист - именно поэтому все мои изделия работают надежно и прозрачно :)) - MBedder(20.04.2017 13:37 - 13:40)
- На собственном опыте убедился, что существуют люди, которые могут назвать локальную переменную u8 и пр. И поскольку у меня нет аргументов заставить их этого не делать, я тоже перешёл полностью на типы stdint.h - =AlexD=(21.04.2017 06:42)
- мне другое интересно, почему в стандарте приняли uint8_t, uint16_t ... а не uint1_t, uint2_t, uint4_t. в чем смысл битного обозначения. - abivan(20.04.2017 10:45)
- Изначально "байт" у многих был 7 бит, потому что это длина слова телеграфных аппаратов которые использовали в качестве клавиатуры та самая первая половина ASCII. В те далекие времена когда создавались языки программирования никто не знал какой Codavr(192 знак., 20.04.2017 12:43, ссылка)
- Но когда был принят стандарт C99(stdint) байт уже был 8-ми битным. "Постепенно 8-битные байты стали стандартом де-факто; с начала 1970-х" - abivan(20.04.2017 13:14, ссылка)
- Я начал писать на С на 10 лет раньше принята C99, и он уже тогда был 8 битным, что не мешало поддерживать обратную совместимость. Stdint всего навсего заголовок и на фундаментальные основы Си не покушается. Еще через 10-15 лет 8 битный байт нахер Codavr(97 знак., 20.04.2017 23:17 - 23:21)
- Но когда был принят стандарт C99(stdint) байт уже был 8-ми битным. "Постепенно 8-битные байты стали стандартом де-факто; с начала 1970-х" - abivan(20.04.2017 13:14, ссылка)
- а вдруг? какие нибудь товарищи отковали бы проц с машинным словом не кратным 8, по моему еще в ту пору далекую еще жили и работали машинки с 10-битным словом. Некрочип ковал и кует процы с инструкциями длинной не кратной 8-ми, кто мог додуматься и Nikolay801_(27 знак., 20.04.2017 10:57)
- Исторически сложилось задолго до. - SciFi(20.04.2017 10:49)
- Изначально "байт" у многих был 7 бит, потому что это длина слова телеграфных аппаратов которые использовали в качестве клавиатуры та самая первая половина ASCII. В те далекие времена когда создавались языки программирования никто не знал какой Codavr(192 знак., 20.04.2017 12:43, ссылка)
- Почему почему... Кури тут. И там (int=char=double все по 32 бита) - max(20.04.2017 10:27 - 10:38, ссылка, ссылка)
- Скажем, int32_t точно имеет смысл. Соответственно, int16_t - для единообразия. - SciFi(20.04.2017 09:34)
- чем int32_t отличается от signed long? - IBAH(20.04.2017 09:42)
- Вот там есть табличка --> - SciFi(20.04.2017 09:45, ссылка)
- Так это оказывается линуксоиды пингвина подложили! С восьмибитного детства помню char-8, short-16, long-32, int - длинна машинного слова. Стройная система. Теперь каждый дрочит вприсядку. Но все равно буду писать "short" редактор жирным выделяет IBAH(14 знак., 20.04.2017 10:05)
- в AVR-GCC размер int аж 16 bit, у TI есть char 16 бит. где стройность? - Vit(21.04.2017 08:50, ссылка, ссылка)
- В педивикии табличка ещё интереснее, SILP64 особенно доставляет --> - SciFi(20.04.2017 10:35, ссылка)
- При чем тут пингвин. Пингвина не трожь. -> 5.2.4.2.1 Sizes of integer types framer(16 знак., 20.04.2017 10:34, ссылка)
- На восьмибитниках int - это засада. Скажем, счётчик цикла. Если компилятор не идиот, то сделает этот счётчик 8-разрядным. А если идиот, то пичалька... - SciFi(20.04.2017 10:28)
- Если откинуть 8-битные платформы, то сразу жить легче и веселее. А для 8-битных есть int_fastX_t. - fk0(20.04.2017 12:33)
- а как это ? В чем там ускорение? - vllv(20.04.2017 12:45)
- Как-как... int_fast8_t - это int8_t на восьмиразрядных процах и просто int на всех остальных. SciFi(57 знак., 20.04.2017 12:46)
- а как это ? В чем там ускорение? - vllv(20.04.2017 12:45)
- Если откинуть 8-битные платформы, то сразу жить легче и веселее. А для 8-битных есть int_fastX_t. - fk0(20.04.2017 12:33)
- Так это оказывается линуксоиды пингвина подложили! С восьмибитного детства помню char-8, short-16, long-32, int - длинна машинного слова. Стройная система. Теперь каждый дрочит вприсядку. Но все равно буду писать "short" редактор жирным выделяет IBAH(14 знак., 20.04.2017 10:05)
- Вот там есть табличка --> - SciFi(20.04.2017 09:45, ссылка)
- чем int32_t отличается от signed long? - IBAH(20.04.2017 09:42)
- signed short может быть разных калибров на разных машинах, а тут сразу видно что два байта. - Nikolay801_(20.04.2017 09:29)
- "signed short может быть разных калибров"????!!!! Какие-то пидарасы внедрили этот миф в сознание человечества! вот хочу понять какие? - IBAH(20.04.2017 09:39 - 09:43)
- мифы не знаю, но я вот своими руками держал 32-х битный чар. У меня был шок. - Nikolay801_(20.04.2017 10:35)
- Хехе а у нас бул 32 разрядный - sav6622_(20.04.2017 11:02, )
- Это странное чувство, когда за каждой буквой может скрываться целое слово :-) - SciFi(20.04.2017 10:39)
- И я даже знаю это слово! - Крок(20.04.2017 23:31)
- мифы не знаю, но я вот своими руками держал 32-х битный чар. У меня был шок. - Nikolay801_(20.04.2017 10:35)
- "signed short может быть разных калибров"????!!!! Какие-то пидарасы внедрили этот миф в сознание человечества! вот хочу понять какие? - IBAH(20.04.2017 09:39 - 09:43)
- Я как начал диверсиицироваться от 8разрядников к 32разрдникам, так и перешел на такую запись. Олдфаг(27 знак., 21.04.2017 07:57, )