![]() |
|
Модераторы: Daevaorn |
![]()
|
|
||
|
|
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
про константы в Си можно почитать тут: http://forum.vingrad.ru/index.php?showtopi...t&p=2325528
про ссылки в Си я таки не слышал... |
|||
|
||||
| maint |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 12.5.2008 Репутация: нет Всего: 2 |
||||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: -1 Всего: 1 |
-------------------- undefined |
|||
|
||||
| maint |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 12.5.2008 Репутация: нет Всего: 2 |
ничего не стоит на месте. Если у Кернигана в синтаксисе не было, то не значит, что остановились на достигнутом. Хотя могу предположить еще, что брошено изучение до того как добрался до материала |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Действительно, C++ слишком сложен для обучения. С - компактней и проще. Честно сказать, за его развитием я не слежу (помню тот, что был во времена Кернигана & Ричи); надеюсь, его не сильно испортили нововведениями (простую логику языка)
Наверное, С++ нужно изучать даже не после С, а после чего-нибудь чисто объектного, наглухо закрывающего от программиста нижний уровень - чтобы сосредоточится именно на методологии. И вот программист освоил и нижний уровень, и высокоуровневый язык, который избавляет о многих хлопот, однако связывает ему руки своей абстрактностью и сильно навязывает определенные парадигмы. Если он сам почувствовал, что ему тесно в этих рамках, то он готов к С++. А если ему комфортно в рамках отделенного от битов языка, то ради бога. Есть ведь масса людей, кого раздражает, например, необходимость следить за памятью и т.д. (не надо про умные указатели, это в язык не встроено). -------------------- ... |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
в вакансиях с высокой з/п на язык типа: perl, ruby, python - часто требуется знание Си, почему-то.
есть еще Embedded Linux:
Это сообщение отредактировал(а) gcc - 1.7.2011, 14:37 |
|||
|
||||
| Сыроежка |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 24.6.2011 Репутация: нет Всего: 1 |
Во-первых, странно, почему у вас отсутствует вариант 4. Си нужен, С++ вообще не нужен? Во-вторых, у вас совершенно не соответсвуют действительности представления о том. что, якобы, С нужен для каких=то "специфических" компиляторов/платформ. Это лишь говорит о вашем небольшом практическом опыте. Я уж не буду ссылаться на UNIX подобный системы, где код Си занимает, если я не ошибаюсь, порядка 80% кода. Но Си очень активно используется на IBM mainframe, и даже под Windows. Как раз очень многие руководители очень крупных проектов категорически против использования С++ и делают выбор в пользу С. Это связано 1). со сложностью самого языка: 2) с очень высоким требованиям к квалификации программистов: 3) долгтй путь обучения самому С++ и вниканию в проект, написанный на С++; 3) трудности в поиске ошибок и отладки проектов. Есть вполне объективные цифры - это доля использования того или иного языка на рынке разработок. Насколько мне известно цифры показывают, что Си заметно опережает С++. |
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Сыроежка, в общем соглашусь, но с
нет. 1. Как обстаят дела в Си со стандартными алгоритмами для разных типов ? Приходится переписывать под каждый тип или уходить вообще от типизации к void*, что может привести к большим ошибкам. Особенно при рефакторинге. 2. Отсутствие деструкторов сильно засоряет код. Например требуется "склеить" два файла в третий. На Си довольно много лишнего получается:
24 строки и на Си++
11 строк да много всего ещё... сами ж наверняка не хуже меня знаете... Кста, на винграде в списке языков для подсветки (под кнопочкой Код) варианта для Си даже нет Это сообщение отредактировал(а) borisbn - 1.7.2011, 17:17 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| Сыроежка |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 24.6.2011 Репутация: нет Всего: 1 |
Если бы только этим ограничивались различия, то вопросов нет. Но, увы, я уже перечсислили серьезные недостатки С++. Разработка на С++ в разы дороже, чем на С! |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Или вот ещё пример из собственной практики. Захотели вы сделать систему расширяемой, чтобы можно было плагинами расширить функционал. Пишу я для вашей системы функцию на чистом Си. И как мне быть, если между вызовами мне нужно сохранить какое-то своё, специфическое, известное только мне, состояние ? Глобальные статические переменные не выход, т.к. если потребуется два экземпляра плагина будет каша. Я уж не говорю о многопоточности - если мою функцию будут вызывать из разных потоков, то о глобальных переменных нужно вообще забыть. Как эта проблема решается в Си++, думаю объяснять не стоит. Довольно просто - абстрактный интерфейс и какой угодно сложный класс наследника.
Добавлено через 11 минут и 27 секунд согласен. Для заказчика (или руководителя проекта) это минус. А для программистов плюс. Вернее ++ -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| sergioK1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Тот кто не знает С никогда не станет хорошим програмистом, потому что это основы , последнее время часто сталкиваюсь со связкой Java+C , для обращения к железу или ОС c для удобства ренаймиться в срр, но не всегда требует знания всех тонкостей последнего , зная С освоить с++ не так сложно , ну будеть местами что нидь типа ненужного typedef - не критично |
|||
|
||||
| Сыроежка |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 24.6.2011 Репутация: нет Всего: 1 |
Совершенно с этим не согласен. Хороший вы программист или нет - это не связано с тем, на каком языке программирования вы работаете! И самое забавное, что скорей всего те, кто так утверждает, не знает языка С! Я знаю очень много людей, которые десятилетиями пишут на языке С, но при этом совершенно не знают языка С и являются плохими программистами! Вы хотите убедиться, что вы сами не знаете языка С? Я вам могу предоставить такую возможность. Только не надо бежать к своему компилятору и выяснять, что он вам выдаст. Попробуйте ответить без компилятора на простые вопросы, как например, этот 1) Чему равно значение логического (оператора равенства) выражения
2) Чему равен тип выражения x + y на машине, на который sizeof( int ) == sizeof( long )
Я вас уверяю, что большинство здесь присутствующих, вполне возможно и включая вас, которые бьют себя в грудь, что знают Си, не сомгут без использования компилятора ответить на такие два простых вопроса! Добавлено @ 18:18
Лично я совершенно не вижу никакого смысла тратить время на изучение Си для того, чтобы изучать С++! Лучше изучать С++ с чистого листа! Это сообщение отредактировал(а) Сыроежка - 1.7.2011, 18:21 |
||||||
|
|||||||
| maint |
|
||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 12.5.2008 Репутация: нет Всего: 2 |
класс File, скорей всего, выглядит как открытие файла с проверкой результата открытия. Таже песня реализовывается в 3 строки функцией чистого Си. Что то вроде
и использование
и не надо городить конструкторы-деструкторы. Размер скомпилированного кода будет меньше и памяти жрать меньше будет. Это сообщение отредактировал(а) maint - 1.7.2011, 18:25 |
||||||||||
|
|||||||||||
| maint |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 12.5.2008 Репутация: нет Всего: 2 |
уже код
говорит о амбициях, а не знании. unsigned по умолчанию не всегда unsigned int. Не во всех компиляторах. Иногда это unsigned char. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |