-
- А про union вы слышали? МиКрик(371 знак., 02.10.2015 12:28, )
- Унион не подойдёт ибо ещё будет сложение времён. symbions(242 знак., 02.10.2015 12:46)
- За такие программы нужно руки отрывать. За операцию "==" по отношению к времени или плавающим числам. - fk0(04.10.2015 15:18)
- операция "==" к плавающим цифрам - нормально. если знаешь что делаешь. проблема ж этой операции в сравнении с константой. - Mahagam(05.10.2015 17:30)
- Проблема в том, что ВРЕМЯ_СЕЙЧАС может быть никогда не равно ВРЕМЕНИ_СРАБАТЫВАНИЯ. Можеть быть меньше, может быть больше. А сейчас -- процессор занят был. - fk0(06.10.2015 00:19)
- А можно еще заняться стеганографией. Младшие биты флоата использовать для хранения флагов %) Скрипач(37 знак., 05.10.2015 17:38)
- Олдфаг обнаружил странности в правилах округления плавучки. Ящетаю, это послание человекам от вселенского разума --> SciFi(5 знак., 05.10.2015 17:40, ссылка)
- Удивлён, что round-to-even для Вас считается открытием. Но не так. Именно не обнаружил, хотя они могут иметь место в вычислениях. Такой эффект есть и реализован в IEEE, осталось найти его проявление на макроуровне. Если, конечно, в компилере не Олдфаг(47 знак., 05.10.2015 20:14, )
- Просто не возникало задач, в которых особенности округления хоть на что-то влияли бы. Скрипач(140 знак., 05.10.2015 20:24)
- Ну вот видите, банкирами это потребовалось а они ребята не промах)) Вот типа реализация для положительных: #define BankRound(f) uint((f)/2.0 + 0.5)*2 Как видим, весьма похоже на наши упражнения. - Олдфаг(05.10.2015 20:46, )
- чот мне кажется, что для банкиров давно существует long long int. считать в центах/копейках. - Mahagam(05.10.2015 21:55)
- Ну, если до цента, то это 184467 трлн (без знака). Я думаю, мировой финансовой закулисе этот рубеж по силам :-) - SciFi(05.10.2015 22:02)
- знак нужен. долги/убытки считать и всё такое. а если рубеж этот перейдут, тогда кому, блеать, будут интересны центы? )))) - Mahagam(06.10.2015 02:23)
- Это архиважно! ))) Потому что по балансу там только на 5 дебит, а не 18. Япония вообще кредитор - кстати(06.10.2015 02:43, )
- знак нужен. долги/убытки считать и всё такое. а если рубеж этот перейдут, тогда кому, блеать, будут интересны центы? )))) - Mahagam(06.10.2015 02:23)
- Ну, если до цента, то это 184467 трлн (без знака). Я думаю, мировой финансовой закулисе этот рубеж по силам :-) - SciFi(05.10.2015 22:02)
- Будешь так округлять - все твои денежки окажутся у банкиров. Значит, надо делать наоборот. - SciFi(05.10.2015 21:11)
- чот мне кажется, что для банкиров давно существует long long int. считать в центах/копейках. - Mahagam(05.10.2015 21:55)
- Ну вот видите, банкирами это потребовалось а они ребята не промах)) Вот типа реализация для положительных: #define BankRound(f) uint((f)/2.0 + 0.5)*2 Как видим, весьма похоже на наши упражнения. - Олдфаг(05.10.2015 20:46, )
- Просто не возникало задач, в которых особенности округления хоть на что-то влияли бы. Скрипач(140 знак., 05.10.2015 20:24)
- Удивлён, что round-to-even для Вас считается открытием. Но не так. Именно не обнаружил, хотя они могут иметь место в вычислениях. Такой эффект есть и реализован в IEEE, осталось найти его проявление на макроуровне. Если, конечно, в компилере не Олдфаг(47 знак., 05.10.2015 20:14, )
- Олдфаг обнаружил странности в правилах округления плавучки. Ящетаю, это послание человекам от вселенского разума --> SciFi(5 знак., 05.10.2015 17:40, ссылка)
- Угу symbions(97 знак., 04.10.2015 22:15)
- операция "==" к плавающим цифрам - нормально. если знаешь что делаешь. проблема ж этой операции в сравнении с константой. - Mahagam(05.10.2015 17:30)
- За такие программы нужно руки отрывать. За операцию "==" по отношению к времени или плавающим числам. - fk0(04.10.2015 15:18)
- Хотя я погорячился, на AVR int наверно не 32-битный :) Так что там это не сработает, или нужно поменять тип unsigned int на uint32_t. - МиКрик(02.10.2015 12:39, )
- Унион не подойдёт ибо ещё будет сложение времён. symbions(242 знак., 02.10.2015 12:46)
- i=TimeOrAlarm.sec && 0x0f; Это круто :) И еще вдобавок int16 = ....*600*60*10; Просто класс. - Petrovich(02.10.2015 12:06, )
- >i=TimeOrAlarm.sec && 0x0f; symbions(354 знак., 02.10.2015 12:51)
- Чего-чего вы выделяете? :) - Petrovich(02.10.2015 13:00, )
- Выделяют & 0x0f - Petrovich(02.10.2015 13:04, )
- А, это. Да, не правильно. - symbions(02.10.2015 14:19)
- Выделяют & 0x0f - Petrovich(02.10.2015 13:04, )
- 600*60*10 = 360000. Нет ли там переполнения? - SciFi(02.10.2015 12:57)
- угу - symbions(02.10.2015 14:19)
- Чего-чего вы выделяете? :) - Petrovich(02.10.2015 13:00, )
- >i=TimeOrAlarm.sec && 0x0f; symbions(354 знак., 02.10.2015 12:51)
- а зачем вообще Вам это время конвертировать целиком в длинное целое? В этом случае компилятор просто обязан нагенерировать кучку длинного и печального кода. Может оптимальней хранить как есть, в BCD, а все вычисления производить побайтно? сделать Nikolay801_(82 знак., 02.10.2015 11:01)
- Вариант, может так и сделаю. symbions(139 знак., 02.10.2015 12:53)
- По указателю структуру передавать не годится? Vit(1094 знак., 02.10.2015 09:24 - 09:30)
- >По указателю структуру передавать не годится? symbions(148 знак., 02.10.2015 10:16)
- На Си. a[i] эквивалентно *(a+i) и даже эквивалентно i[a]. Vit(493 знак., 02.10.2015 10:49)
- Про -> не знал, спасибо - symbions(02.10.2015 10:59)
- На Си. a[i] эквивалентно *(a+i) и даже эквивалентно i[a]. Vit(493 знак., 02.10.2015 10:49)
- >По указателю структуру передавать не годится? symbions(148 знак., 02.10.2015 10:16)
- по второму, можно не возвращать, а передавать еще одним параметром в какую структуру записывать. Nikolay801_(801 знак., 02.10.2015 09:01 - 09:30)
- Перепроверил. Работают оба варианта. Виноват, не внимателен был, видно ещё что-то поменял symbions(202 знак., 02.10.2015 23:07 - 05.10.2015 19:50)
- Враки. - SciFi(05.10.2015 08:32 - 09:13)
- Угу, виноват symbions(38 знак., 05.10.2015 19:50)
- не знаю, не сталкивался с подобным - Nikolay801_(05.10.2015 08:26)
- Дык, эта.. Скрипач(447 знак., 02.10.2015 23:11 - 03.10.2015 00:38)
- Что-то эту тарабарщину не могу понять, даже гугл-переводчик не помогает :( symbions(62 знак., 03.10.2015 00:52)
- Раз компилятор не выдал ошибку синтаксиса то 100% "должно". Но в тексте стандарта неявно обозначен пробел между описанием типа и знаком "*". Скрипач(156 знак., 03.10.2015 09:18)
- ясно, спасибо symbions(79 знак., 03.10.2015 09:54)
- Я практически уверен что дело в чём-то другом. Дизассемблер бы посмотреть. - Скрипач(04.10.2015 12:34)
- Ты прав, в чём-то другом проблема была. Перепроверил. Работают оба варианта. - symbions(05.10.2015 19:51)
- Хорошо, сделаю - symbions(04.10.2015 23:08)
- Я практически уверен что дело в чём-то другом. Дизассемблер бы посмотреть. - Скрипач(04.10.2015 12:34)
- ясно, спасибо symbions(79 знак., 03.10.2015 09:54)
- Раз компилятор не выдал ошибку синтаксиса то 100% "должно". Но в тексте стандарта неявно обозначен пробел между описанием типа и знаком "*". Скрипач(156 знак., 03.10.2015 09:18)
- Что-то эту тарабарщину не могу понять, даже гугл-переводчик не помогает :( symbions(62 знак., 03.10.2015 00:52)
- Враки. - SciFi(05.10.2015 08:32 - 09:13)
- Первый пример - вариант для этой программы, хоть и кривой symbions(133 знак., 02.10.2015 10:21)
- pointer->field просто синоним (*pointer).field тока для удобочитаемости. - Nikolay801_(02.10.2015 10:50)
- Перепроверил. Работают оба варианта. Виноват, не внимателен был, видно ещё что-то поменял symbions(202 знак., 02.10.2015 23:07 - 05.10.2015 19:50)
- Второй вариант переписала б как-то так krsvvik(368 знак., 02.10.2015 09:27)
- А откуда компилятор будет знать о полях .sec, .min, .chas? symbions(31 знак., 02.10.2015 10:08)
- Поправила krsvvik(882 знак., 02.10.2015 10:52)
- ок, спасибо - symbions(02.10.2015 12:54)
- Поправила krsvvik(882 знак., 02.10.2015 10:52)
- А откуда компилятор будет знать о полях .sec, .min, .chas? symbions(31 знак., 02.10.2015 10:08)
- Что-то сомневаюсь, что что-то из этого будет работать. int в AVR обычно 2x-байтовый. У вас будет переполнение. - Ale3000(02.10.2015 09:26)
- ОК, не заметил. Правда ещё до этого и не дошёл, но время теперь съэкономлю - symbions(02.10.2015 10:08)
- вообще я бы сделал иначе. Я бы добавил в структуру функции конвертации, вот так Nikolay801_(1274 знак., 02.10.2015 09:21)
- Это уже не Си. symbions(171 знак., 02.10.2015 10:18)
- А в чем проблема на Си передать в функцию указатель на функцию? Скрипач(87 знак., 02.10.2015 10:20 - 12:10)
- Вместо (*pf)() лучше pf(). Красивше. - SciFi(02.10.2015 12:14)
- У отцов-основателей написано "со звездочкой". Видимо в более поздних стандартах добавлено. - Скрипач(02.10.2015 12:29)
- проблема - синтаксис не очевидный, за 10 лет так и не приучился читать не с лева на право, а из с середины наружу. - Nikolay801_(02.10.2015 11:10)
- А можно? Както не помню о такой возможности. symbions(35 знак., 02.10.2015 10:24)
- Можно. Скажите "Скрипач - разрешил!" :) - Скрипач(02.10.2015 11:29)
- Вместо (*pf)() лучше pf(). Красивше. - SciFi(02.10.2015 12:14)
- нет, это с, в плюсах это выглядит примерно также, но внутренняя механика веселей и заковыристей. В це структура достаточно формальное объедение данных и методов, какого то дополнительного кода не генерится. Нужно обратится к данным - их адрес Nikolay801_(570 знак., 02.10.2015 10:47)
- Ты пиздабол космических масштабов, других слов у меня нет. Сахара превратилась в общество махровых любителей. Выжимка из твоего говнокода: fk0(671 знак., 02.10.2015 11:47 - 11:52)
- Фух, хоть что-то помню правильно - symbions(02.10.2015 12:57)
- Что ты пристал к человеку? Он же честно написал у себя в подписи: "Я на этом форуме раздаю вредные советы по программированию." :-) - SciFi(02.10.2015 12:05)
- Указатель "this" смущает. Ткните, пожалуйста, пальцем в стандарт. Он и правда существует и инициализируется автоматически? - Скрипач(02.10.2015 11:31)
- Дык это на первой же странице учебника написано, нет? Есть ещё статические функции класса, там никакого this нету. - SciFi(02.10.2015 11:33)
- Керниган и Ритчи смотрят на вас с удивлением. - Скрипач(02.10.2015 12:08)
- Дык я ж подумал, что он про плюсы. А потом заметил разгромное выступление fk0 :-) - SciFi(02.10.2015 12:13)
- Керниган и Ритчи смотрят на вас с удивлением. - Скрипач(02.10.2015 12:08)
- Дык это на первой же странице учебника написано, нет? Есть ещё статические функции класса, там никакого this нету. - SciFi(02.10.2015 11:33)
- Ты пиздабол космических масштабов, других слов у меня нет. Сахара превратилась в общество махровых любителей. Выжимка из твоего говнокода: fk0(671 знак., 02.10.2015 11:47 - 11:52)
- Для начала надо бы Си выучить. Потому что если туда ещё и плюсы намешать, то каша в голове приобретёт катастрофический характер. - SciFi(02.10.2015 10:22)
- А в чем проблема на Си передать в функцию указатель на функцию? Скрипач(87 знак., 02.10.2015 10:20 - 12:10)
- Это уже не Си. symbions(171 знак., 02.10.2015 10:18)
- по первому вопросу скорее всего работать будет, у аврок проблем с выравниванием не должно быть, но я бы написал __packed, хотя это из разряда подуть на холодную воду. Nikolay801_(65 знак., 02.10.2015 08:45)
- Очередная космическая глупость. packed не нужен практически нигде и никогда, и он точно не нужен если ты не знаешь что это такое. - fk0(02.10.2015 12:01)
- ок, спасибо, посмотрю что значит __packed - symbions(02.10.2015 10:22)
- А про union вы слышали? МиКрик(371 знак., 02.10.2015 12:28, )