Перейти к содержанию
    

как писать на С в 2016 году

Ну, одну пользу я уже извлек - char нужно произносить как "кар", в словаре посмотрел произношение character. :rolleyes:

 

Еще одна - #pragma once

 

void processAddBytesOverflow(void *input, uint32_t len) {

...

вместо

void processAddBytesOverflow(uint8_t *bytes, uint32_t len) {

- не знаю, насколько это правильно, но на заметку можно взять

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы не путаете эмбеддеров с Web программистами???

молодежь как токарный станок - не имеет самоограничительных механизмов и имеет свойство наматывать на шкив всё что только может зацепиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

void processAddBytesOverflow(void *input, uint32_t len) {

...

вместо

void processAddBytesOverflow(uint8_t *bytes, uint32_t len) {

- не знаю, насколько это правильно, но на заметку можно взять

Не знаю что там делает processAddBytesOverflow, а вот send(void const *from, size_t len) или receive(void *to, size_t len) или dump(void const *from, size_t len) очень удобно:

 

uint8_t A;
uint32_t B;
struct
{
    uint32_t Aa;
    .....
} C;
uint16_t D[8];
...
  dump(&A, sizeof(A));
  dump(&B, sizeof(B));
  dump(&C, sizeof(C));
  dump(&D, sizeof(D));

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

господа программисты, прокомментируйте пожалуста вот это явление - стандарт безопасного написания кода

https://www.securecoding.cert.org/confluenc...Coding+Standard

 

зачем оно нужно, где применяется? я имею в виду это для embed, под винду, веб или в принципе для чего угодно?

 

может так надо писать коды в 2016? =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

прокомментируйте пожалуста вот это явление

Пожалуйста.

Первое же требование к препроцессору, указывать оба варианта #ifdef / #else абсолютно по делу.

Самый простой пусть избежать отправки заказчику прошивки с выключенным WDT, это указать

#else

#warning "WDT off!"

#endif

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

прокомментируйте пожалуста вот это явление - стандарт безопасного написания кода

https://www.securecoding.cert.org/confluenc...Coding+Standard

зачем оно нужно, где применяется?

Почитал несколько пунктов. Все оказались из серии "не сушите кошек в микроволновке". Да, все они пишут правильно и именно так и надо делать, но разве кто-то делает иначе?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

разве кто-то делает иначе?

Увы, и это ужас ужасный.

Мне приходится много работать с чужими проектами.

За месяцы! не удается выправить то состояния, пригодного для комфортного сопровождения и развития.

И проекты сложный, чтобы переписать все.

Насколько я понимаю, вы работаете один. Повезло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне приходится много работать с чужими проектами.

За месяцы! не удается выправить то состояния, пригодного для комфортного сопровождения и развития.

И проекты сложный, чтобы переписать все.

 

Это называется не переписывание, а рефакторинг.

Обязательная процедура при работе с любыми чужими исходниками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почитал несколько пунктов. Все оказались из серии "не сушите кошек в микроволновке". Да, все они пишут правильно и именно так и надо делать, но разве кто-то делает иначе?

Присоединюсь к Dog Pawlowa уровень мусора зашкаливает. Я тоже имею очень много дел с чужими проектами, причем это как бы не типичный мусор из интернету, а коммерческие вещи писанные американцами-австралийцами-юаровцами-канадцами-немцами. Среди фамилий авторов я даже индийских не встречал, хотя каких-то славян, китайцев, пакистанцев этих да, есть.

Прилично пишут только немцы. Самый беспредел это ЮАР. Но и остальные не далеко ушли. Типична дивная помесь вдолбленных за период обучения вполне из себя правильных приемов программирования, какой то дикой безмозголой отсебятины и белых ниток которыми все это шито.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Настоящему программисту должно быть вообще без разницы как написан код, достаточно только гарантий что он рабочий.

То, что Вы написали, означает, что Вы не программист, а конечный потребитель или сшиватель белыми нитками - работает и ладно.

Перед программистами сталкивающимися с чужим кодом стоит задача не использовать его, а исправить, поскольку он НЕ рабочий, или изменить, поскольку изменяется функциональность.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

NULL vs Nil

nullptr )

 

когда носители английского между собой будут Москву называть Москвой, вот тогда я буду говорить "форд мастэнг". Сейчас же я, говоря по-русски, использую русские правила транскрипции.

+

к тому же некоторые почему то забыли, что в английском и в его деривативе нет вообще ни буквы эр, ни звука эр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Статью разбили в пух и прах.

Так как все таки писать на си в 2016, у кого-то есть идеи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вы нашли о чем спорить! Чар или кар! Давайте лучше советы по собственно языку обсуждать.

 

Да сколько угодно.

Вот возьмем CMSIS OS, которую упорно продвигает ARM

Любители Keil RTX скоро должны обнаружить, что она не поддерживается на Cortex-M7

И всем массово надо будет переходить на CMSIS OS

 

Так вот там повсеместно используют конструкции типа

#define osSemaphoreDef(name)  \
uint32_t os_semaphore_cb_##name[2] = { 0 }; \
const osSemaphoreDef_t os_semaphore_def_##name = { (os_semaphore_cb_##name) }
#endif

 

Вот мой совет на все времена: никогда не применять эту вот фигню - ##

 

Из-за нее не работает нормально рефакторинг, появляются скрытые имена, затрудняется отладка.

И все из-за того чтобы скрыть дополнительное объявление одной переменной от юзера. Это в опенсорсе то!

 

И вообще языки должны делится на корпоративные и индивидуальные, а не на высшие и низшие или отраслевые ( для WEB-а, для сенсоров, для ракет и т.д.)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот мой совет на все времена: никогда не применять эту вот фигню - ##

“Золотое правило жизни заключается в том, что нет никаких золотых правил” ;)

 

Использую во всех проектах для кодирования состояний/функций/имен/текста в автоматах состояний.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот возьмем CMSIS OS, которую упорно продвигает ARM

Любители Keil RTX скоро должны обнаружить, что она не поддерживается на Cortex-M7

И всем массово надо будет переходить на CMSIS OS

Не знаю, что за CMSIS OS, а CMSIS RTOS как появилась в виде надстройки над RTX, так я ее и использую.

http://www.keil.com/pack/doc/CMSIS/RTOS/html/index.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...