C99-AnnexF This annex specifies C language support for the IEC 60559 floating-point standard. The IEC 60559 floating-point standard is specifically Binary floating-point arithmetic for microprocessor systems, second edition (IEC 60559:1989), previously designated IEC 559:1989 and as IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE 754−1985). IEEE Standard for Radix-Independent Floating-Point Arithmetic (ANSI/IEEE 854−1987) generalizes the binary standard to remove dependencies on radix and word length. IEC 60559 generally refers to the floating-point standard, as in IEC 60559 operation, IEC 60559 format, etc. An implementation that defines __STDC_IEC_559__ shall conform to the specifications in this annex. Where a binding between the C language and IEC 60559 is indicated, the IEC 60559-specified behavior is adopted by reference, unless stated otherwise.
То есть, если есть макрос __STDC_IEC_559__, тогда float - 32, double - 64, если нет, - зависит от реализации.
ИИ будет с обычным текстовым, звуковым и визуальным интерфейсом в дополнение к существующим сейчас. Программировать сможет любой лентяй что угодно, что не запретит мировоззрение ИИ.
Могу привести пример задания, которое можем вместе запрограммить.
То есть, если есть макрос __STDC_IEC_559__, тогда float - 32, double - 64, если нет, - зависит от реализации.
Ну понятно, что бывают float и double одного размера, выше по треду даже примеры есть. Но пойнт автора сабжевого документа в том, что не надо морочиться с якобы поддержкой таких платформ - если вы не пишете специально для нее, вероятность запуска вашего кода на ней равна нулю.
И что тебе скажет название моей собственной рабочей библиотеки для опроса микроконтроллером его Модбас-слейвов и выдачи, при необходимости, телеметрии на ПК по тому же Модбасу? Тем более, что я навскидку и не помню, типа libmodbus_slave_чо-то_там. А дома исходники не держу — ещё не хватало.
Совсем хорошо, если в ней будет использоваться хотя бы float.
Там плавающая точка вообще мало где используется, только для телеметрии, насколько помню. И упаковывается в 16-битные Модбасовские регистры (Модбас в этом смысле тоже не подарок с его парадигмой «или отдельный бит, или 16-битное слово»). А вот чтобы один и тот же исходник с упаковкой/распаковкой можно было собрать и на МК, и на ПК (на всякий случай — именно это и называется «переносимость») — и начинаются пляски с макросами, дефайнами и прочим. И заблуждение насчёт того, что «float = 32 бита, double = 64» тут не поможет никак.
goto есть смысл использовать только при выходе из хитро вложенных циклов. Во всех остальных случаях я не встречал его оправданного применения с точки зрения читабельности кода.
Я чаще всего встречаю goto в сишном коде, имитирующем RAII
«OpenCORE is the multimedia framework of Android» - как бы автоматически это не экзотичные процессоры. Или изначальные исходники ITU подразумевали что-то более широкое?
Что-то не заметил там этой мысли, можно попдробнее, где он это говорит?
Именно этих слов он, естественно, не говорит. Это мое понимание посыла статьи.
«OpenCORE is the multimedia framework of Android» - как бы автоматически это не экзотичные процессоры. Или изначальные исходники ITU подразумевали что-то более широкое?
Естественно более широкое.
Именно этих слов он, естественно, не говорит. Это мое понимание посыла статьи.
Зато он говорит:
A few people seem to have read this as an «I hate C» page, but it isn't. C is dangerous in the wrong hands (not enough testing, not enough experience when widely deployed), so paradoxically the two kinds of C developers should only be novice hobbyists (code failure causes no problems, it's just a toy) or people who are willing to test their asses off (code failure causes life or financial loss, it's not just a toy) should be writting C code for production usage. There's not much room for «casual observer C development.» For the rest of the world, that's why we have Eglang
Ну понятно, что бывают float и double одного размера
А ты мне объясни вообще такую штукую. Зачем вообще даблы там, где их нет? Если они используются в коде, то их точность нужна, значит что без них корректности результатов не добиться.
Значит надо не использовать даблы, да? Значит надо просто не писать. А уж если пойти дальше и учесть, что и флоатов может не быть, то и флоаты использовать то же не надо.
В целом тебе даже отвечать не надо - изначальная постановка вопроса не имеет смысла. Это значит, что ты победитель по умолчанию. Тебе не надо пытаться искать смысл/спорить в том/о том, что изначально дерьмо.
«OpenCORE is the multimedia framework of Android» - как бы автоматически это не экзотичные процессоры. Или изначальные исходники ITU подразумевали что-то более широкое?
Естественно более широкое.
И вот об этом где можно узнать? Если честно, я сильно сомневаюсь, что ITU рассчитывали на экзотику.
И что тебе скажет название моей собственной рабочей библиотеки для опроса микроконтроллером его Модбас-слейвов и выдачи, при необходимости, телеметрии на ПК по тому же Модбасу?
Тот факт, что ты написал библиотеку для микроконтроллера, но проверял ее на ПК, наводит на размышления. Не было эмулятора или по каким-то причинам он был неюзабельным?
-Werror только конкретно под gcc, а выше по файлу костыли, чтобы на разных версиях работало. Для остальных компиляторов аналогичные костыли по месту (в шланге чисто, в icc костыли, в ccc пц костыли, и т.п.). Это как раз демонстрирует мои слова.
ITU писали референсную реализацию для проверки работоспособности алгоритмов...
А потом пришли злые погрмисты и пытаются использовать где не попадая, в том числе в системах...отвечающих, скажем так, за нашу безопасность, и там стоят не только x86,MIPS,ARM...
Разумное. Но возможно ли? Во встраиваемых системах практически все на С. bash -> busybox. Хорошо, если порой sed и/или awk встречается... Ну а python например вряд какой нибудь вендор захочет «тащить» в свой девайс (тяжеловато будет).
Согласен. Но «плюсовиков» «чистых» я имею в виду, не особо и берут на работу в embedded, работодатель часто требует понимания системы (взаимодействия us - ks), а не построения иерархии классов...
Но, вот, чтобы реализовать например CLI(command line interface), не хуже, чем это сделано у Cisco, нам нужен плюсовик, чтобы не заморачиваться с ежесекундными сегфолгами, при построении дерева команд и при auto completion.
Но «плюсовиков» «чистых» я имею в виду, не особо и берут на работу в embedded, работодатель часто требует понимания системы (взаимодействия us - ks), а не построения иерархии классов...
Опять же, по моему опыту, чистый плюсовик и не нужен. И развесистые иерархии классов не нужны - это же embedded, а не проектирование нового Photoshop (это уже не говоря о том, что развесистые иерархии наследования считаются плохим тоном).
чтобы не заморачиваться с ежесекундными сегфолгами, при построении дерева команд и при auto completion.
Современный Си++ (начиная с C++0x) сильно легче в применении, чем, например, C++98. Но инерция мышления...
Угу... Тем не менее, проект обрастает таким множеством костылей, что надо что-то уже делать.
Не уверен, что g++, используемый в проекте поддреживает С++0х.
Интересно, а clang поддерживает, хотя, уверен, что да.
У меня сейчас 4.3, в котором даже unique_ptr стандартно нет. Но это всё равно лучше, чем Си (и как минимум 2 реализации unique_ptr есть в Сети, одна - в cxxomfort, другую я нашел где-то в списках рассылки gcc).
Затащить новый компилер в проект, мне кажется, хрен получится. Тем более, что он разбросан по континентам... Боссы не пойдут на это, нужны убедительные пруфы и бенчмарки... К тому же, gcc текущий генерит достаточно оптимизированный код, что удовлетворяет заказчика. )))
С чего ты взял, что только «проверял»? Она работает как в контроллере, так и в ПК-шном клиенте.
На самом деле не исключено, что ПК-шный клиент ещё переделаем сто раз — проект меняется постоянно — и переносимость будет уже не особенно нужна. Она, как бы, и сейчас не критична, но если есть возможность — почему бы не сделать? Ну да, хотя бы потому что «проверить на ПК» можно, если что.