Привет, *Harry*!
/четверг, 07 апреля 2005/ *Harry Zhurov* писал(а) к *Andrey Solomatov* по поводу *Текстовые строки (было: Embedded OS):*
[кусь]
HZ> Нет, С++ рождался не на пустом месте, как и почти любой ЯП. HZ> Конкретно, С++ рождался на основе С и Симулы.
С некоторой оглядкой на Алгол, как уверяет Страуструп.
AS>> Да и мало он был распространён на момент стандартизации.
HZ> Стандартизации чего? С? Или С++?
C++ - на момент стандартизации C. И интенсивно развивался (С++). А говорить о "развитии в сторону" чего-то, быстро изменяющегося - несколько некорректно, имхо. Ну а "в сторону приближения" - всё-таки более корректно. Тем более, что это не исключает одновременного приближения и к алголу, и к остальным подобным. ;)
[кусь]
HZ> Тогда надо было писать K&R.
А... Действительно глюкнул. Почему-то мне помнилось именно C&R.
[кусь]
HZ> Это смотря по какому изданию. По 2-му там такого уже нет, уже ANSI HZ> вовсю рулит.
Угу. Но обычно когда упоминают K&R - говорят именно про "старый стиль".
HZ> А до ансишного варианта там вообще было эн диалектов, каждый из которых HZ> отличался в мелочах от других, что рубило под корень переносимость.
Ну, в таком случае пресловутая "стандартизация C" - это от безысходности. В результате C достиг уровня стандартности паскаля, и только. ;))
[кусь] HZ>>> А прямое обращение к памяти - это прямое обращение к памяти. Или ты не HZ>>> знаешь как это делается?
AS>> Нет, не знаю. Расскажи.
HZ> Стебаешься? Или правда не знаешь?
Блн. Третье писмо пишу - не знаю. Точнее - не понимаю, о чём ты говоришь.
[кусь]
HZ> Это потому, что ты на паскале писал. И на РС. А когда на МК HZ> подсядешь, так сразу поймешь, в чем "сермяжная правда жизни". :)
Возможно. Но, тем не менее, никак не могу придумать ситуацию, когда может понадобиться инкрементация именно указателя - а не индекса.
[кусь]
AS>> Ты всерьёз хочешь меня уверить, что в C++ легко "выйти за границы"?
HZ> "Как два байта переслать" (с)! С++ никого насильно не держит - HZ> хочешь нарушить контроль типов - нарушай (через явное преобразование), HZ> прога скомпилится без проблем.
Ну так это - _явное_преобразование_. Т.е. ты прямо сказал компилятору "делай так". И, кстати, даже это срабатывает не всегда - иногда компилятор упирается.
[кусь]
AS>> Не люблю typedef.
HZ> ? А он не девушка, чтоб его любить.
А дэвушек я люблю. ;)
HZ> Он есть средство для достижения определенной цели. Вполне удобное. И не HZ> пользоваться им к месту просто, мягко говоря, неразумно.
typedef не удобен. Потому, что разрывается общее определение того, что это есть: "typedef struct" и само имя типа. Между ними может быть весьма много текста.
AS>> Лишняя прибамбасина,
HZ> Очень полезная "прибамбасина", позволяет вводить удобные синонимы HZ> для типов.
Если бы он вводил разные типы - цены ему бы не было!
[кусь]
HZ> Это ты не тип определил, а объект объявил. Нету тут типа. А если HZ> написать:
Да, я вспомнил. Это уже общие особенности синтаксиса C. ;))
HZ> typedef struct TAbc HZ> { HZ> // HZ> // Здесь дли-иинное определение структуры HZ> // HZ> } TAbc;
"Верхний" TAbc - лишний, а нижний - оторван от определения typedef. Что не есть хорошо для читабельности программы.
[кусь]
AS>> Ну его, C++ лучшее. ;))
HZ> Да, в С++ лучше, но это _мелочи_.
Ну, когда соберается много мелочей - получается крупная хорошесть. ;)
[кусь]
HZ> Причем тут перегрузка? Вопрос был про С программы. Откуда там HZ> перегрузка?
А, я спутал. "Что из-под C++ не скомпилируется правильно под C".
[кусь]
HZ> Ниче не понял! Что такое "набор get"?
get(char); get(int); get(long); get(char*); ...
[кусь]
HZ> Вот я и спросил, на какую платформу в ембеддах ты перешел?
Инфинеон C167
[кусь]
HZ> Ерунда какая-то. Под какую платформу? Какой компилятор?
Tasking C166/ST10 v.7.5