реклама на сайте
подробности

 
 
5 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> как писать на С в 2016 году
ViKo
сообщение Jan 25 2016, 18:31
Сообщение #16


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



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

Еще одна - #pragma once

void processAddBytesOverflow(void *input, uint32_t len) {
...
вместо
void processAddBytesOverflow(uint8_t *bytes, uint32_t len) {
- не знаю, насколько это правильно, но на заметку можно взять
Go to the top of the page
 
+Quote Post
krux
сообщение Jan 25 2016, 18:58
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Цитата(zltigo @ Jan 25 2016, 21:16) *
Вы не путаете эмбеддеров с Web программистами???

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


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 25 2016, 19:59
Сообщение #18


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(ViKo @ Jan 25 2016, 20:31) *
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));


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Hexel
сообщение Jan 25 2016, 20:26
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 13-03-12
Из: Украина
Пользователь №: 70 785



господа программисты, прокомментируйте пожалуста вот это явление - стандарт безопасного написания кода
https://www.securecoding.cert.org/confluenc...Coding+Standard

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

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


--------------------
нет повести печальнее на свете, чем повесть о запавшем ресете
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jan 26 2016, 07:01
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Hexel @ Jan 25 2016, 23:26) *
прокомментируйте пожалуста вот это явление

Пожалуйста.
Первое же требование к препроцессору, указывать оба варианта #ifdef / #else абсолютно по делу.
Самый простой пусть избежать отправки заказчику прошивки с выключенным WDT, это указать
#else
#warning "WDT off!"
#endif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 26 2016, 08:36
Сообщение #21


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Hexel @ Jan 25 2016, 22:26) *
прокомментируйте пожалуста вот это явление - стандарт безопасного написания кода
https://www.securecoding.cert.org/confluenc...Coding+Standard
зачем оно нужно, где применяется?
Почитал несколько пунктов. Все оказались из серии "не сушите кошек в микроволновке". Да, все они пишут правильно и именно так и надо делать, но разве кто-то делает иначе?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jan 26 2016, 09:45
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Сергей Борщ @ Jan 26 2016, 11:36) *
разве кто-то делает иначе?

Увы, и это ужас ужасный.
Мне приходится много работать с чужими проектами.
За месяцы! не удается выправить то состояния, пригодного для комфортного сопровождения и развития.
И проекты сложный, чтобы переписать все.
Насколько я понимаю, вы работаете один. Повезло.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 26 2016, 10:04
Сообщение #23


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Dog Pawlowa @ Jan 26 2016, 11:45) *
Мне приходится много работать с чужими проектами.
За месяцы! не удается выправить то состояния, пригодного для комфортного сопровождения и развития.
И проекты сложный, чтобы переписать все.


Это называется не переписывание, а рефакторинг.
Обязательная процедура при работе с любыми чужими исходниками.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 26 2016, 10:04
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Сергей Борщ @ Jan 26 2016, 10:36) *
Почитал несколько пунктов. Все оказались из серии "не сушите кошек в микроволновке". Да, все они пишут правильно и именно так и надо делать, но разве кто-то делает иначе?

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




--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 26 2016, 10:21
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (AlexandrY @ Jan 26 2016, 12:08) *
Настоящему программисту должно быть вообще без разницы как написан код, достаточно только гарантий что он рабочий.

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
smalcom
сообщение Jan 26 2016, 13:35
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
NULL vs Nil

nullptr )

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

+
к тому же некоторые почему то забыли, что в английском и в его деривативе нет вообще ни буквы эр, ни звука эр.
Go to the top of the page
 
+Quote Post
Ga_ry
сообщение Jan 26 2016, 13:59
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 494
Регистрация: 23-06-09
Из: Полтава, UA
Пользователь №: 50 579



Статью разбили в пух и прах.
Так как все таки писать на си в 2016, у кого-то есть идеи?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 26 2016, 14:10
Сообщение #28


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(menzoda @ Jan 26 2016, 15:54) *
Ну вы нашли о чем спорить! Чар или кар! Давайте лучше советы по собственно языку обсуждать.


Да сколько угодно.
Вот возьмем 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-а, для сенсоров, для ракет и т.д.)
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jan 26 2016, 14:17
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(AlexandrY @ Jan 26 2016, 17:10) *
Вот мой совет на все времена: никогда не применять эту вот фигню - ##

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

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


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 26 2016, 14:20
Сообщение #30


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(AlexandrY @ Jan 26 2016, 17:10) *
Вот возьмем 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
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 07:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.015 секунд с 7
ELECTRONIX ©2004-2016