Здравствуйте, disasm, Вы писали:
D>>Боже, это ж где такая трава растет?? D>эта трава из M$ D>там ввели свой тип UCHAR который определен как unsigned int D>сделано это видимо для оптимизации
Нет, сделано это для прямого представления Unicode-символов (на что слегка намекает префикс 'U'). В gcc на Линуксе sizeof(wchar_t)==4, аналогично.
D>>эта трава из M$ D>>там ввели свой тип UCHAR который определен как unsigned int C>Нет, сделано это для прямого представления Unicode-символов (на что слегка намекает префикс 'U').
гм, гм, даже интересно стало, поискал, мсдн:
A UCHAR is an 8-bit integer with the range: 0 through 255 decimal. Because a UCHAR is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.
This type is declared as follows:
typedef unsigned char UCHAR, *PUCHAR;
Здравствуйте, Deprivator, Вы писали:
D>Другое дело, что на С++ можно писать в разных стилях. Когда я на него только перешел, я фактически писал как на С
За такие дела надо отрывать первичные половые признаки
D>Сказать честно, не понимаю неприятия C++ для low level задач. ну да, есть нюансы, например, с икслючениями, но в целом — не понимаю.
это просто. нюансы надо если не понять, то хотя бы выучить. Если же сравнивать Си и Си++ в стиле Си с классами, то Си рвет "Си с классами" как тузик грелку.
Здравствуйте, Brutalix, Вы писали:
D>>Другое дело, что на С++ можно писать в разных стилях. Когда я на него только перешел, я фактически писал как на С B>За такие дела надо отрывать первичные половые признаки
D>>Сказать честно, не понимаю неприятия C++ для low level задач. ну да, есть нюансы, например, с икслючениями, но в целом — не понимаю. B>это просто. нюансы надо если не понять, то хотя бы выучить. Если же сравнивать Си и Си++ в стиле Си с классами, то Си рвет "Си с классами" как тузик грелку.
бррр.... ну и в каком месте Си "рвет как тузик грелку" язык с _точно_ такими же возможностями ПЛЮС ряд дополнительных?
а вот обратное утверждение верно.
возможность использовать нормальные строки, обьявлять переменные где хочешь, классы (пусть даже в самом простом примитивном виде) и контейнеры дает огромное преимущество, после которого чистый С забывается как ночной кошмар на утро.
Здравствуйте, Mamut, Вы писали:
M>>>Mike Williams, один из создателей Erlang'а: «C++ и Java не нужны»
dmz>>Си тоже.
M>Ну, по его словам: M>- близко к железу: ассемблер M>- realtime: C M>- скриптинг: Perl, Python... M>- приложения: OCaml, Haskell, Erlang...
С тем же успехом можно написать
— realtime: C++
— приложения: C++/Java...
Для Си, OCaml, Haskell, Erlang места нет
Здравствуйте, Eugeny__, Вы писали:
E__>Здравствуйте, Wissenschaftler, Вы писали:
W>>А самая частая причина, по которой низкоуровневые вещи пищут на Си "in industry" — сишники дешевле плюсников того же уровня. Все дела.
E__>Еще — Си просто проще. Я не сишник, и последний раз писал на Си(++) в институте лабы. Я жавист, с 3-го курса пишу на жабе. Но недавно проект на Си сделал без проблем(был единственный фейл — я забыл, что char в си однобайтный, но решилось быстро), причем проект под девайс с 64К памяти и прочими незавидными характеристиками(проц медленный, видно отображение символов на текстовом экране). На плюсах я бы задолбался. А так — несколько простых правил: выделяем все на стеке(памяти и так мало, с кучей заморачиваться нет смысла), не возвращаем локальные переменные и... Да и все, по сути. Разве что работа со строками немного парит(ну, после высокоуровневых языков, а либы не сильно поподключаешь в такой проект, ограничение на размер бинарника 90 килобайт), но все решаемо. А плюсовика на небольшой проект нанимать было бы дорого и бессмысленно.
И что же ты там такое эзотерическое использовал, что оно может быть только Си и не скомпилится плюсовым компилятором?
ЗЫ Это я к тому, что С++ изначально разрабатывался как надмножество Си, т.е. чтоб можно было взять сишный код и посыпать его сверху классами/шаблонами/перегрузками/RAII, и все будет работать. Ну или, перефразируя, можно было писать в стиле Си и чтоб все работало, при необходимости пользуясь плюсовыми рулезами. Почему вдруг "На плюсах я бы задолбался", не понимаю.
Здравствуйте, jazzer, Вы писали:
J>И что же ты там такое эзотерическое использовал, что оно может быть только Си и не скомпилится плюсовым компилятором?
Я думаю, имелось в виду, что в случае C++ надо и писать на его родных средствах, а не на средствах C.
А в таком случае разница уже очень существенна.
Здравствуйте, Mamut, Вы писали:
M>>>Mike Williams, один из создателей Erlang'а: «C++ и Java не нужны»
dmz>>Си тоже.
M>Ну, по его словам: M>- близко к железу: ассемблер M>- realtime: C M>- скриптинг: Perl, Python... M>- приложения: OCaml, Haskell, Erlang...
M>Для C++/Java места нет :)
Для C++ я бы ещё частично согласился — стиль с использованием бутерброда из разных языков для разных задач обычно не хуже, чем стиль использования одного бутербродного языка (хотя MS с этим, похоже, не согласится;))
А вот возражения против Java, приводящие в отместку к использованию или функциональных языков, или скриптовых, уже (к сожалению или к счастью) адекватными не будут.
Здравствуйте, netch80, Вы писали:
N>Здравствуйте, jazzer, Вы писали:
J>>И что же ты там такое эзотерическое использовал, что оно может быть только Си и не скомпилится плюсовым компилятором?
N>Я думаю, имелось в виду, что в случае C++ надо и писать на его родных средствах, а не на средствах C. N>А в таком случае разница уже очень существенна.
Ну тут вот сказали рядом, что писали как на Си, но с использованием RAII, объявлением переменных в любом месте и прочих простых плюсовых вещей типа перегрузки функций и параметров по умолчанию — почему нет? Программа остается простой, хоть и плюсовой, все очень легко понять и отследить, и при этом нет половины связанного с чистым Си геморроя.
Здравствуйте, Mamut, Вы писали:
M>>>Mike Williams, один из создателей Erlang'а: «C++ и Java не нужны»
dmz>>Си тоже.
M>Ну, по его словам: M>- близко к железу: ассемблер M>- realtime: C M>- скриптинг: Perl, Python... M>- приложения: OCaml, Haskell, Erlang...
M>Для C++/Java места нет
Угу. И половину времени разработки трахаемся с организацией межъязыкового интеропа.
Здравствуйте, jazzer, Вы писали:
J> Это я к тому, что С++ изначально разрабатывался как надмножество Си, т.е. чтоб можно было взять сишный код и посыпать его сверху классами/шаблонами/перегрузками/RAII, и все будет работать. Ну или, перефразируя, можно было писать в стиле Си и чтоб все работало, при необходимости пользуясь плюсовыми рулезами. Почему вдруг "На плюсах я бы задолбался", не понимаю.
Соблазн всё равно был бы, а там то одно то другое, то зачем нам этот ужасный голый char*
Я вот могу проконстатировать факт -- писать код мне да, приятней на C++. Но вот из миллионов прочитанных мной строк кода за восемь с лишним лет в разработке, самым приятным и читаемым всегда был код на C. Даже плохой код на C читается лучше хорошего кода на C++, хотя бы потому что ты всегда уверен что делает сегодня утром оператор "+" и передавая в функцию аргумент точно знаешь что нигде между тем как ты его передал и тем как она его получила не будет имплисит кастов. И да, сообщение об ошибке, если оно вдруг появится когда рефакторя ты сделаешь что-то не так (а в незнакомом коде -- сделаешь не ходи купаться), займёт в случае C чуть меньше, чем пять экранов.
Именно поэтому я очень часто сознательно пишу не "в стиле С", а конкретно -- на С. Жалею тех, кто придёт за мной читать.
Здравствуйте, Eugeny__, Вы писали:
E__>Еще — Си просто проще. Я не сишник, и последний раз писал на Си(++) в институте лабы. Я жавист, с 3-го курса пишу на жабе. Но недавно проект на Си сделал без проблем(был единственный фейл — я забыл, что char в си однобайтный, но решилось быстро), причем проект под девайс с 64К памяти и прочими незавидными характеристиками(проц медленный, видно отображение символов на текстовом экране). На плюсах я бы задолбался. E__> А так — несколько простых правил: выделяем все на стеке(памяти и так мало, с кучей заморачиваться нет смысла), не возвращаем локальные переменные и... Да и все, по сути. Разве что работа со строками немного парит(ну, после высокоуровневых языков, а либы не сильно поподключаешь в такой проект, ограничение на размер бинарника 90 килобайт), но все решаемо.
У вас в голове больки!!!
Что вам мешало точно так же написать на С++?
Или если С++ то надо обязательно наццатиэтажные шаблоны городить и туеву хучу хитрожопо наследованных классов с "виртуальными деструкторами" (тм) ?
Откуда вот это вот убеждение?
Бери С++, пиши на нём так, как писал бы на plain С, но там где реально надо — юзай расширенные возможности.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Cyberax, Вы писали:
D>>>Боже, это ж где такая трава растет?? D>>эта трава из M$ D>>там ввели свой тип UCHAR который определен как unsigned int D>>сделано это видимо для оптимизации C>Нет, сделано это для прямого представления Unicode-символов (на что слегка намекает префикс 'U').
"Да они там все упоротые!" (С)
Всегда в МС префикс 'U' означал unsigned.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, netch80, Вы писали:
N>Я думаю, имелось в виду, что в случае C++ надо и писать на его родных средствах, а не на средствах C.
Тех кто так думает надо срочно лечить от закостенелости мышления.
Ибо опасно таких людей подпускать к разработке.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Tilir, Вы писали:
T>хотя бы потому что ты всегда уверен что делает сегодня утром оператор "+"
Это уже имхо слегка паранойя.
T>И да, сообщение об ошибке, если оно вдруг появится когда рефакторя ты сделаешь что-то не так (а в незнакомом коде -- сделаешь не ходи купаться), займёт в случае C чуть меньше, чем пять экранов.
Как вы этого достигаете???
Не ну у мс компилера при ошибке в шаблонах помнится совершенно укуренный вывод ошибок, но есть ведь вменяемые компиляторы.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Brutalix, Вы писали:
D>>Другое дело, что на С++ можно писать в разных стилях. Когда я на него только перешел, я фактически писал как на С B>За такие дела надо отрывать первичные половые признаки
Потрудитесь обосновать.
D>>Сказать честно, не понимаю неприятия C++ для low level задач. ну да, есть нюансы, например, с икслючениями, но в целом — не понимаю. B>Если же сравнивать Си и Си++ в стиле Си с классами, то Си рвет "Си с классами" как тузик грелку.
И это тоже.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока