Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Инструментарий

Инструментарий Тестеры, паяльники, осциллографы, программаторы, IDE.

Ответ
 
Опции темы Опции просмотра
Старый 29.04.2020, 16:23   #1
Marat
Senior Member
 
Аватар для Marat
 
Регистрация: 27.03.2007
Адрес: Минск
Сообщений: 882
Вес репутации: 853/65
Marat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to behold
По умолчанию Стандарты языка "Си"

Добрый день.
Могут профи подсказать - а какого стандарта лучше придерживаться при написании кода на С для МК (Microchip & ST)?

Если нужны подробности - конкретно сейчас пишу для STM и имею в настройках среды целый зоопарк из: ANSI, C11, GNU11, C89, GNU89, C90, GNU90, C99, GNU99, Iso9899:1990, Iso9899:199409 и т.д....и т.п.

Хочется обоснованно принять выбор и "говнокодить" так, чтобы при необходимости не иметь "детских ограничений", но и много не переделывать потом (в случае переноса кода и т.д.)....

Кто что скажет? besogon, Марк, HIMMERA, Greg, ampersant, Dosikus, Tester.. and other....

Не претендую на истину в последней инстанции, но хочется услышать Ваше мнение... личное ИМХО так сказать...
Заранее спасибо
__________________
RTFM.....и будет вам счастье
Marat вне форума   Ответить с цитированием
Старый 29.04.2020, 17:22   #2
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,317
Вес репутации: 4401/96
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Стандарты языка "Си"

Если компилятор поддерживает gnu11, то использую -std=gnu11.
Сейчас это стандарт по умолчанию для gcc.

В случае gnu11, если не ошибаюсь, поддерживается сейчас в gcc и clang, что есть благодатная почва для проблем с переносимостью.

На практике - с проблемами с переносимостью сталкивался довольно редко, да и когда сталкивался, проблемы были шире, чем один стандарт.

До gnu11 использовал gnu99.

Удобно использовать из-за наличия расширений gnu, которые еще непонятно когда появятся в основном стандарте.
besogon на форуме   Ответить с цитированием
Старый 29.04.2020, 18:31   #3
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 1,477
Вес репутации: 725/49
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от Marat Посмотреть сообщение
Добрый день.
Могут профи подсказать - а какого стандарта лучше придерживаться при написании кода на С для МК (Microchip & ST)?

Если нужны подробности - конкретно сейчас пишу для STM и имею в настройках среды целый зоопарк из: ANSI, C11, GNU11, C89, GNU89, C90, GNU90, C99, GNU99, Iso9899:1990, Iso9899:199409 и т.д....и т.п.
Ваше мнение... личное ИМХО так сказать...
Заранее спасибо
эта.... язык С- это сам по себе стандарт .... остальное- это извраты для разных компиляторов и платформ....
и что то универсальное- здесь тяжело предложить....
b=sin(a);
везде будет...

вопрос изначально непонятен.....
SergP01 на форуме   Ответить с цитированием
Старый 29.04.2020, 19:50   #4
HJV
Senior Member
 
Регистрация: 25.02.2007
Адрес: Чита
Возраст: 39
Сообщений: 528
Вес репутации: 1108/65
HJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud of
Отправить сообщение для HJV с помощью ICQ
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от SergP01 Посмотреть сообщение
эта.... язык С- это сам по себе стандарт ....
Ага, помню как открыл книгу некоего Герберта Шилда по ANSI Си крест крест, много думал
HJV вне форума   Ответить с цитированием
Старый 29.04.2020, 20:17   #5
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 1,477
Вес репутации: 725/49
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от HJV Посмотреть сообщение
Ага, помню как открыл книгу некоего Герберта Шилда по ANSI Си крест крест, много думал
бейсик почитайте.... как раз на ночь - чтиво....
а ежели крутым в нём станете... расскажите как сделать int a= char b ...
SergP01 на форуме   Ответить с цитированием
Старый 29.04.2020, 20:23   #6
HJV
Senior Member
 
Регистрация: 25.02.2007
Адрес: Чита
Возраст: 39
Сообщений: 528
Вес репутации: 1108/65
HJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud of
Отправить сообщение для HJV с помощью ICQ
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от SergP01 Посмотреть сообщение
бейсик почитайте.... как раз на ночь - чтиво....
а ежели крутым в нём станете... расскажите как сделать int a= char b ...
Я просто тогда начинал Си изучать, после Кернигана и Риччи, потом Страуструпа, Шилд чёто не зашел. Страшно подумать, как давно это было
HJV вне форума   Ответить с цитированием
Старый 29.04.2020, 20:36   #7
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 1,477
Вес репутации: 725/49
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от HJV Посмотреть сообщение
Я просто тогда начинал Си изучать, после Кернигана и Риччи, потом Страуструпа, Шилд чёто не зашел. Страшно подумать, как давно это было
а чё.... прикольный язык... этакая надстройка над ASM.... позволяет делать баги, в которых потом хрен разберёшься.... а он откомпилет- и скажет, что всё ОК...
SergP01 на форуме   Ответить с цитированием
Старый 29.04.2020, 20:38   #8
HJV
Senior Member
 
Регистрация: 25.02.2007
Адрес: Чита
Возраст: 39
Сообщений: 528
Вес репутации: 1108/65
HJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud of
Отправить сообщение для HJV с помощью ICQ
По умолчанию Re: Стандарты языка "Си"

А ведь действительно, после немного МПАсма я переехал на Бейсик, как мне тогда показалось проще некуда, благо один знающий людь сказал "Не верной дорогой идете товарищ!". Установил Борланд С++ и давай решать типовые задачи, которые нам в это время для Паскаля давали в универе. Как по-обвыкся, стал на Хайтеке писать - радости полные штаны
HJV вне форума   Ответить с цитированием
Старый 29.04.2020, 20:48   #9
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 1,477
Вес репутации: 725/49
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от HJV Посмотреть сообщение
А ведь действительно, после немного МПАсма я переехал на Бейсик, как мне тогда показалось проще некуда,
мой первый опыт с этим языком был- программа хелло.... на 86-ой машине с винтом в 10мбайт.... он прогу сделал 86к.... я потом понял, что он свой интерпритатор к проге цеплял
SergP01 на форуме   Ответить с цитированием
Старый 29.04.2020, 21:08   #10
HJV
Senior Member
 
Регистрация: 25.02.2007
Адрес: Чита
Возраст: 39
Сообщений: 528
Вес репутации: 1108/65
HJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud ofHJV has much to be proud of
Отправить сообщение для HJV с помощью ICQ
По умолчанию Re: Стандарты языка "Си"

Сейчас для пиков пишу на "языке похожем на Си" как его называет Досикус (МикроСи), среда мне оченно понравилась и глюки уже стали как родные Для СТМ32 в Кеиле.
HJV вне форума   Ответить с цитированием
Старый 29.04.2020, 23:02   #11
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,542
Вес репутации: 3332/91
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
Arrow Re: Стандарты языка "Си"

Цитата:
Сообщение от Marat Посмотреть сообщение
Добрый день.
Могут профи подсказать - а какого стандарта лучше придерживаться при написании кода на С для МК (Microchip & ST)?

Если нужны подробности - конкретно сейчас пишу для STM и имею в настройках среды целый зоопарк из: ANSI, C11, GNU11, C89, GNU89, C90, GNU90, C99, GNU99, Iso9899:1990, Iso9899:199409 и т.д....и т.п.

Хочется обоснованно принять выбор и "говнокодить" так, чтобы при необходимости не иметь "детских ограничений", но и много не переделывать потом (в случае переноса кода и т.д.)....

Кто что скажет? besogon, Марк, HIMMERA, Greg, ampersant, Dosikus, Tester.. and other....

Не претендую на истину в последней инстанции, но хочется услышать Ваше мнение... личное ИМХО так сказать...
Заранее спасибо
C99 - произвольная инициализация полей струrтур и элементов массива = {.array[3] = 3, ... };, объявление внутри заголовка for(uint8_t i = ...), объявление переменных в произвольном месте (что действительно экономит с-стек)
Код:
uint8_t foo(uint8_t param)
{
 if(param >= merde) return merde;
uint8_t Eins, Zwei, Polizei ... ;
}
это реально удобно, да и поддерживается давно и везде. А прочие навороты мало того, что не особо и нужны (уж точно не часто), таки да вызывают геморрой с переносимостью
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 29.04.2020, 23:40   #12
Marat
Senior Member
 
Аватар для Marat
 
Регистрация: 27.03.2007
Адрес: Минск
Сообщений: 882
Вес репутации: 853/65
Marat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to behold
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от pal1222@yandex.ru Посмотреть сообщение
C99 - произвольная инициализация полей струrтур и элементов массива = {.array[3] = 3, ... };,
Вот именно на этом и споткнулся как-то... то надо скобочки "лишние", то уже и не надо...
Разобрался с тем, но хочется понимать - "как правильнее" сегодня (в комплексе обязательств/потребностей/удобства).
(Кроме массивов и структур может ещё чаво есть....)
То-есть ваше мнение - С99?
__________________
RTFM.....и будет вам счастье
Marat вне форума   Ответить с цитированием
Старый 29.04.2020, 23:42   #13
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 1,477
Вес репутации: 725/49
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от pal1222@yandex.ru Посмотреть сообщение
C99 - произвольная инициализация полей струrтур и элементов массива = {.array[3] = 3, ... };, объявление внутри заголовка for(uint8_t i = ...), объявление переменных в произвольном месте (что действительно экономит с-стек)
Код:
uint8_t foo(uint8_t param)
{
 if(param >= merde) return merde;
uint8_t Eins, Zwei, Polizei ... ;
}
это реально удобно, да и поддерживается давно и везде. А прочие навороты мало того, что не особо и нужны (уж точно не часто), таки да вызывают геморрой с переносимостью
а вот это- нифига не удобно....
ежели эти переменные глобальные....
этож- здец- как потом придётся искать- где я по пьяни это обьявил и зачем...
область видимости нарушается.....
не понятно зачем такое вообще нужно?
SergP01 на форуме   Ответить с цитированием
Старый 29.04.2020, 23:52   #14
Marat
Senior Member
 
Аватар для Marat
 
Регистрация: 27.03.2007
Адрес: Минск
Сообщений: 882
Вес репутации: 853/65
Marat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to behold
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от SergP01 Посмотреть сообщение
ежели эти переменные глобальные....
э-э-э-э-э-э-э.....
__________________
RTFM.....и будет вам счастье
Marat вне форума   Ответить с цитированием
Старый 29.04.2020, 23:58   #15
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 1,477
Вес репутации: 725/49
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от Marat Посмотреть сообщение
э-э-э-э-э-э-э.....
автор написал обьявление переменных в любом месте...
это и так в С есть....
я так понял- имеется ввиду- глобальные переменные...
или афтар не знает, что можно написать for(int i=0;....
и любой компилятор это скушает...
SergP01 на форуме   Ответить с цитированием
Старый 30.04.2020, 00:05   #16
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 1,477
Вес репутации: 725/49
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от Marat Посмотреть сообщение
Вот именно на этом и споткнулся как-то... то надо скобочки "лишние", то уже и не надо...
Разобрался с тем, но хочется понимать - "как правильнее" сегодня (в комплексе обязательств/потребностей/удобства).
(Кроме массивов и структур может ещё чаво есть....)
То-есть ваше мнение - С99?
ИМХО.... писать по классике.... точно не ошибёшься....
SergP01 на форуме   Ответить с цитированием
Старый 30.04.2020, 00:17   #17
Marat
Senior Member
 
Аватар для Marat
 
Регистрация: 27.03.2007
Адрес: Минск
Сообщений: 882
Вес репутации: 853/65
Marat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to behold
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от SergP01 Посмотреть сообщение
ИМХО.... писать по классике.... точно не ошибёшься....
Ваше мнение - ANSI?
__________________
RTFM.....и будет вам счастье
Marat вне форума   Ответить с цитированием
Старый 30.04.2020, 09:26   #18
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,317
Вес репутации: 4401/96
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Стандарты языка "Си"

Как пример, кусок кода, в котором видно, как я пишу.
Вложения
Тип файла: zip example_gnu11.zip (12.1 Кб, 17 просмотров)
besogon на форуме   Ответить с цитированием
Старый 30.04.2020, 09:55   #19
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,542
Вес репутации: 3332/91
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от Marat Посмотреть сообщение
Вот именно на этом и споткнулся как-то... то надо скобочки "лишние", то уже и не надо...
Разобрался с тем, но хочется понимать - "как правильнее" сегодня (в комплексе обязательств/потребностей/удобства).
(Кроме массивов и структур может ещё чаво есть....)
То-есть ваше мнение - С99?
Да пофиг если не упираться рогом в конструкции типа:
Код:
uint8_t array[] __attribute__((weak)) = {#include %CD%\array.txt};
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 30.04.2020, 09:56   #20
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 1,477
Вес репутации: 725/49
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от besogon Посмотреть сообщение
Как пример, кусок кода, в котором видно, как я пишу.
Марку не показывайте
SergP01 на форуме   Ответить с цитированием
Старый 30.04.2020, 16:35   #21
Marat
Senior Member
 
Аватар для Marat
 
Регистрация: 27.03.2007
Адрес: Минск
Сообщений: 882
Вес репутации: 853/65
Marat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to behold
По умолчанию Re: Стандарты языка "Си"

спасибо всем...
понятно, что a=b+c; будет работать на всех компиляторах с любыми опциями...
Конструкции типа "--ld->tx.txdata->usage;" я вряд-ли буду в ближайшее время юзать...(явное приведение типов указателей иногда употребляю, или указатели на указатели, но это не высший пилотаж...)

Больше интересовал момент - если придётся кусок кода (например, реализация меню) перетащить из STM (GCC) в PIC(XC_8/16/32) или обратно - чтобы не пришлось судорожно править куски соблюдая требуемое форматирование ...

Правильно-ли я понимаю, что опцию С99 нынче будут подерживать все копиляторы , и (в 2020-м!) опцию C11(gnu11) - тоже все, которые мне интересны? (GCC, XC_8/16/32)
__________________
RTFM.....и будет вам счастье
Marat вне форума   Ответить с цитированием
Старый 30.04.2020, 17:14   #22
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,542
Вес репутации: 3332/91
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от Marat Посмотреть сообщение
спасибо всем...
понятно, что a=b+c; будет работать на всех компиляторах с любыми опциями...
Конструкции типа "--ld->tx.txdata->usage;" я вряд-ли буду в ближайшее время юзать...(явное приведение типов указателей иногда употребляю, или указатели на указатели, но это не высший пилотаж...)

Больше интересовал момент - если придётся кусок кода (например, реализация меню) перетащить из STM (GCC) в PIC(XC_8/16/32) или обратно - чтобы не пришлось судорожно править куски соблюдая требуемое форматирование ...

Правильно-ли я понимаю, что опцию С99 нынче будут подерживать все копиляторы , и (в 2020-м!) опцию C11(gnu11) - тоже все, которые мне интересны? (GCC, XC_8/16/32)
Ничего не делай прямо с камнем из "меню" и будет те счастье. Не полное, правда... IAR на моей памяти стиль дефайнов процессора трижды поменять успел
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 03.05.2020, 12:39   #23
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,884
Вес репутации: 4724/137
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от Marat Посмотреть сообщение
Добрый день.
Могут профи подсказать - а какого стандарта лучше придерживаться при написании кода на С для МК (Microchip & ST)?

Если нужны подробности - конкретно сейчас пишу для STM и имею в настройках среды целый зоопарк из: ANSI, C11, GNU11, C89, GNU89, C90, GNU90, C99, GNU99, Iso9899:1990, Iso9899:199409 и т.д....и т.п.

Хочется обоснованно принять выбор и "говнокодить" так, чтобы при необходимости не иметь "детских ограничений", но и много не переделывать потом (в случае переноса кода и т.д.)....

Кто что скажет? besogon, Марк, HIMMERA, Greg, ampersant, Dosikus, Tester.. and other....
С вашего позволения, я от лица "and others" выражу свое мнение: обычно профи пишут с использованием того стандарта, который принят на конкретном предприятии (если вы работаете на предприятии). Если же вы фрилансер (или что-то промеж), то пишут с использованием того стандарта, который пожелает заказчик. Редко когда нужно писать что-то с нуля и целиком все одному, часто приходится дописывать, переписывать, адаптировать что-то готовое. Для STM32 хватает C99.

PS: Я недвано смотрел видео на Ютубе на тему "какой язык выбрать...", так с удивлением обнаружил, что крупные корпорации вообще используют свои языки и компиляторы (Боинг - Ada, Гугл - Go, Аппл - Objective-C...). Успехов в поиске.
__________________
Прогресс неизбежен.

Последний раз редактировалось Pridnya; 03.05.2020 в 12:51.
Pridnya на форуме   Ответить с цитированием
Старый 04.05.2020, 07:12   #24
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,317
Вес репутации: 4401/96
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Стандарты языка "Си"

Pridnya
У нас раз в 6 месяцев вменяемые программисты собираются и обсуждают как мы дальше будем писать код, чтобы всем всё было понятно.

Проходит время, появляется что-то новое и становится ясно что-то относительно старого.
besogon на форуме   Ответить с цитированием
Старый 04.05.2020, 09:05   #25
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,017
Вес репутации: 6060/179
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Стандарты языка "Си"

Цитата:
Сообщение от Pridnya Посмотреть сообщение
с удивлением обнаружил, что крупные корпорации вообще используют свои языки и компиляторы (Боинг - Ada, Гугл - Go, Аппл - Objective-C...)
Да какой же Ada - "свой"? Как верно заметил, кто платит (МО США), тот и танцует...
Увы, это не спасло Боинг от логических ошибок в софте гражданских самолетов, напрямую приведших к человеческим жертвам. https://www.fierceelectronics.com/el...&mrkid=6074211
Greg вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изучение английского языка fol Общетехнические вопросы 60 26.10.2014 20:09
Проблема с функциями языка С в Hi-Tech Evseniya Инструментарий 2 11.01.2012 00:16
Стандарты растровых шрифтов qwerty1 Общетехнические вопросы 3 16.03.2010 12:58
Ищутся стандарты IEEE 1394 nonedub Общетехнические вопросы 1 08.07.2009 17:05


Часовой пояс GMT +3, время: 12:33.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot