|
Совместное использование *.сpp файлов и *.c, Не компилируются совместно файлы Си и Си++ |
|
|
|
 |
Ответов
|
Jun 27 2011, 06:57
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(inventor @ Jun 24 2011, 22:50)  Не было времени сегодня искать пример, щас попробую его описать. Процессор работает на чатоте 14 Мгц обменивается с другим процом на частоте 1Мгц. На асме около 70 строк кода обработчика прерывания. На С примерно в два раза больше. Программа на С работает на пределе. Но не сбоит. Даже не представляю как это будет работать на С++. Да...вся программа умещается во внутренней памяти DSP. И где тут пример? Привели какие-то общие фразы, дескать, тут быстрее, тут медленее, а С++ тут вообще в пролёте. Где аргументы? Где доказательства? Реальный пример давайте. Например, вот написали протокол обмена по UART на С++, оказалось в два раза медленнее, чем на С. Вот и давайте оба варианта (на С и на С++) в студию. Это будет пример, который можно обсуждать. Цитата(zltigo @ Jun 26 2011, 01:53)  Вы опять с этим Александреску с его обобщенно-шаблонно-абстрактным программированием  . Нам такие товарищи эмбеддерам совсем НЕ товарищи. Цитата(zltigo @ Jun 26 2011, 15:26)  Подход а-ля Александреску характерен для научных работ - давайте на бумаге/модели получим, хоть какой-то результат и потом подумаем, что дальше делать. У инженеров в сложных случаях тоже есть понятие НИОКР, но это именно заранее запланированный этап. Насчёт Александреску вынужден не согласиться. У него показаны приёмы, как сделать написание кода более удобным и безопасным. Это, конечно, требует труда вникать (например, списки типов я так до конца и не вкурил - хоть и интересно, но актуальности пока нет и не предвидится, хотя имею в виду). Но у него помимо "тяжёлых" вещей вроде разработки на основе стратегий, немало просто полезных фишек вроде "распознавания конвертируемости и наследования на этапе компиляции". Конечно, подобные приёмы возникли от недостатка соответствующих средств в самом языке, но само решение очень красиво и, главное, в отличие от typeof(), выполняется на этапе компиляции. Или его менеджер памяти, который оптимизирован (скорость и компактность) для работы небольшими (десятки байт) объектами. Для AVR, конечно, не пойдёт, но на каком-нить АРМе уже вполне может оказаться кстати. Вообще, Александреску представляет очень интересный взгляд на хорошо известные штатные языковые средства, и взгляд этот у него очень нестандартен. Даже если не подсаживаться на эти приёмы, поизучать (даже просто прочитать на разок) оказывается очень нелишним. Достойное чтиво и неплохая разминка для мозгов.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Jun 27 2011, 08:20
|

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

|
QUOTE (dxp @ Jun 27 2011, 08:57)  Насчёт Александреску вынужден не согласиться...... Я не об этом - он реально занимается решением ДРУГИХ задач и выхватывать из его книг какие-то слова, например, о вреде преждевременной оптимизации и поминать их всуе, как минимум, не корректно. QUOTE (MrYuran @ Jun 27 2011, 08:43)  Вот нашёл, цитата из книги: Золотые слова - подпишусь под каждым. Только вот К ЖУТЧАЙШЕМУ моему сожалению толпы эмбеддерщиков об оптимизации на верхних уровнях думают с трудом  . Зато по рассуждать о том что на десяти командах они на АSM обгонят компилятор это всегда готовы  . А услышав слова о вреде преждевременной оптимизации поснимают галочки где-нибудь в IDE и скажут, что Александреску с Макконнелом так велят  . Умение оптимизировать на верхних уровнях определяется в том числе и инструментальными средствами которые человек освоил. Одно дело, когда человек пошел от сохи железа и постиг программирование в кодах (на самом деле он считает, что пишет, на ASM, но реально это настолько минималистичное использование даже ASM, что это практически кодирование  ). Другое, когда уже понимает и имеет успешный опыт, например, в C++. Это другие горизонты, другое понимание и другие возможности.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
kolobochishe Совместное использование *.сpp файлов и *.c Jun 9 2011, 07:22 MrYuran В хедерах си-шных модулей надо вставить скобки
Код... Jun 9 2011, 07:43 sergeeff Проще прямо написать
Код#ifdef __cplusplus
extern ... Jun 9 2011, 07:46 kolobochishe Цитата(MrYuran @ Jun 9 2011, 12:43) В хед... Jun 9 2011, 08:05 mdmitry Цитата(kolobochishe @ Jun 9 2011, 12:05) ... Jun 9 2011, 09:47  inventor Цитата(mdmitry @ Jun 9 2011, 13:47) Можно... Jun 16 2011, 18:24   sergeeff Цитата(inventor @ Jun 16 2011, 22:24) в п... Jun 17 2011, 10:24    zltigo QUOTE (sergeeff @ Jun 17 2011, 13:24) про... Jun 17 2011, 12:54     sergeeff Цитата(zltigo @ Jun 17 2011, 16:54) С и С... Jun 17 2011, 13:20      zltigo QUOTE (sergeeff @ Jun 17 2011, 16:20) Хот... Jun 17 2011, 13:33      Сергей Борщ QUOTE (sergeeff @ Jun 17 2011, 16:20) Хот... Jun 17 2011, 13:40       zltigo QUOTE (Сергей Борщ @ Jun 17 2011, 16:40) ... Jun 17 2011, 13:59       dxp Цитата(Сергей Борщ @ Jun 17 2011, 20:40) ... Jun 17 2011, 14:09      Danis Цитата(sergeeff @ Jun 17 2011, 16:20) Хот... Jun 17 2011, 13:57 sonycman А наоборот может быть - ошибка при вызове из си++ ... Jun 18 2011, 09:38 sergeeff Цитата(sonycman @ Jun 18 2011, 12:38) А н... Jun 18 2011, 13:51  sonycman Цитата(sergeeff @ Jun 18 2011, 17:51) Вы ... Jun 19 2011, 17:36   AHTOXA Цитата(sonycman @ Jun 19 2011, 23:36) Но ... Jun 19 2011, 18:04    sonycman Цитата(AHTOXA @ Jun 19 2011, 22:04) Именн... Jun 19 2011, 19:14     sergeeff Цитата(sonycman @ Jun 19 2011, 22:14) Пон... Jun 19 2011, 20:30      sonycman Цитата(sergeeff @ Jun 20 2011, 00:30) А э... Jun 19 2011, 21:17       dxp Цитата(sonycman @ Jun 20 2011, 04:17) Я о... Jun 20 2011, 02:59       XVR Цитата(sonycman @ Jun 20 2011, 01:17) Не ... Jun 20 2011, 08:42        sonycman Цитата(dxp @ Jun 20 2011, 06:59) Если ком... Jun 20 2011, 09:13         XVR Цитата(sonycman @ Jun 20 2011, 13:13) Так... Jun 20 2011, 09:21          sonycman Цитата(XVR @ Jun 20 2011, 13:21) Разумеет... Jun 20 2011, 09:34         dxp Цитата(sonycman @ Jun 20 2011, 16:13) Инт... Jun 20 2011, 12:04          zltigo QUOTE (dxp @ Jun 20 2011, 14:04) Мне попа... Jun 20 2011, 12:15           inventor Кстати, никогда не делайте программы для DSP и кон... Jun 22 2011, 10:52            dxp Цитата(inventor @ Jun 22 2011, 17:52) Кст... Jun 22 2011, 12:13             inventor Цитата(dxp @ Jun 22 2011, 16:13)
Вам сюд... Jun 22 2011, 13:59              dxp Цитата(inventor @ Jun 22 2011, 20:59) Для... Jun 22 2011, 14:48               zltigo QUOTE (dxp @ Jun 22 2011, 17:48) Заинтриг... Jun 22 2011, 17:52              XVR Цитата(inventor @ Jun 22 2011, 17:59) Для... Jun 22 2011, 19:19               inventor Цитата(XVR @ Jun 22 2011, 23:19) Угу, вид... Jun 23 2011, 11:21                MrYuran Цитата(inventor @ Jun 23 2011, 15:21) код... Jun 23 2011, 11:30                dxp Цитата(inventor @ Jun 23 2011, 18:21) код... Jun 23 2011, 12:35                 inventor Цитата(dxp @ Jun 23 2011, 16:35) Это тако... Jun 23 2011, 16:41                XVR Цитата(inventor @ Jun 23 2011, 15:21) код... Jun 23 2011, 17:54                ar__systems Цитата(inventor @ Jun 23 2011, 07:21) код... Jul 4 2011, 01:14            AHTOXA Цитата(inventor @ Jun 22 2011, 16:52) Все... Jun 22 2011, 14:48 sergeeff Уж сколько понаписано про преждевременную оптимиза... Jun 24 2011, 10:45 zltigo QUOTE (sergeeff @ Jun 24 2011, 13:45) Уж ... Jun 24 2011, 13:15  inventor Цитата(zltigo @ Jun 24 2011, 17:15) глупо... Jun 24 2011, 15:50  sergeeff Цитата(zltigo @ Jun 24 2011, 16:15) глупо... Jun 25 2011, 09:41   zltigo QUOTE (sergeeff @ Jun 25 2011, 11:41) А ч... Jun 25 2011, 09:47    sergeeff Цитата(zltigo @ Jun 25 2011, 12:47) После... Jun 25 2011, 17:38     zltigo QUOTE (sergeeff @ Jun 25 2011, 19:38) Ров... Jun 25 2011, 18:53      sergeeff Цитата(zltigo @ Jun 25 2011, 21:53) Вы оп... Jun 25 2011, 22:44       Dog Pawlowa Цитата(sergeeff @ Jun 26 2011, 01:44) Про... Jun 26 2011, 05:03       inventor Цитата(sergeeff)Сделали. И вдруг (или не вдруг) на... Jun 26 2011, 06:35       zltigo QUOTE (sergeeff @ Jun 26 2011, 00:44) Име... Jun 26 2011, 08:26        sergeeff Цитата(zltigo @ Jun 26 2011, 11:26) Забыл... Jun 26 2011, 09:37         zltigo QUOTE (sergeeff @ Jun 26 2011, 12:37) Одн... Jun 26 2011, 10:18          sergeeff Цитата(zltigo @ Jun 26 2011, 13:18) Катег... Jun 26 2011, 10:39      MrYuran Цитата(zltigo @ Jun 25 2011, 22:53) Все у... Jun 27 2011, 06:43 MrYuran Цитата(dxp @ Jun 27 2011, 10:57) Даже есл... Jun 27 2011, 07:02  dxp Цитата(MrYuran @ Jun 27 2011, 14:02) Согл... Jun 27 2011, 10:44
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|