Преимущество C перед C++
От: Аноним  
Дата: 24.02.10 12:03
Оценка:
Некоторые говорят что код на С работает быстрее чем C++. Т. е. для разработки высокопроизводительного SW предпочтительно использовать С вместо C++. Кто нибудь может подсказать в чем это преимущество (не считая использование виртуальных функции, здесь очевидно почему медленее)

24.02.10 15:44: Перенесено модератором из 'C/C++' — Кодт
Re: Преимущество C перед C++
От: IID Россия  
Дата: 24.02.10 12:11
Оценка: +7
Здравствуйте, Аноним, Вы писали:

А>Некоторые говорят что код на С работает быстрее чем C++. Т. е. для разработки высокопроизводительного SW предпочтительно использовать С вместо C++. Кто нибудь может подсказать в чем это преимущество (не считая использование виртуальных функции, здесь очевидно почему медленее)


Troll detected!

По самому вопросу: Если есть нормальный С++ компилятор, то преимуществ у чистого С нет. За деталями — в поиск.
kalsarikännit
Re: Преимущество C перед C++
От: Roman Odaisky Украина  
Дата: 24.02.10 12:14
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Некоторые говорят что код на С работает быстрее чем C++. Т. е. для разработки высокопроизводительного SW предпочтительно использовать С вместо C++. Кто нибудь может подсказать в чем это преимущество (не считая использование виртуальных функции, здесь очевидно почему медленее)


C++ почти полностью совместим с C, поэтому программы на C, как правило, можно просто скомпилировать компилятором C++ и получить такой же результат, не быстрее и не медленнее. C++ сам по себе не вносит никаких тормозов, это же zero overhead language. И нельзя говорить, что виртуальные функции замедляют программу, потому что для реализации того же средствами C пришлось бы самому реализовывать полиморфизм каким-нибудь другим способом. То же относится к RTTI и исключениям (кстати, последние могут быть даже быстрее кодов возврата, потому что они могут быть реализованы как переход прямо к обработчику, минуя длинную цепочку условных переходов типа if(status < 0) return -ESOMETHING).

Зато C++ может быть быстрее C. Например, std::sort быстрее qsort за счет того, что встраивает операцию сравнения, а не вызывает функцию по указателю.
До последнего не верил в пирамиду Лебедева.
Re[2]: Преимущество C перед C++
От: playnext  
Дата: 24.02.10 12:26
Оценка:
Здравствуйте, IID, Вы писали:

IID>Здравствуйте, Аноним, Вы писали:


А>>Некоторые говорят что код на С работает быстрее чем C++. Т. е. для разработки высокопроизводительного SW предпочтительно использовать С вместо C++. Кто нибудь может подсказать в чем это преимущество (не считая использование виртуальных функции, здесь очевидно почему медленее)


IID>Troll detected!


IID>По самому вопросу: Если есть нормальный С++ компилятор, то преимуществ у чистого С нет. За деталями — в поиск.


На уровне двоичных кодов отличаются отличаются программы скомпилинные C и С++ компиляторами?
Re[2]: Преимущество C перед C++
От: A13x США  
Дата: 24.02.10 12:29
Оценка: :)
Здравствуйте, Roman Odaisky, Вы писали:

RO>Здравствуйте, Аноним, Вы писали:


А>>Некоторые говорят что код на С работает быстрее чем C++. Т. е. для разработки высокопроизводительного SW предпочтительно использовать С вместо C++. Кто нибудь может подсказать в чем это преимущество (не считая использование виртуальных функции, здесь очевидно почему медленее)


RO>C++ почти полностью совместим с C, поэтому программы на C, как правило, можно просто скомпилировать компилятором C++ и получить такой же результат, не быстрее и не медленнее. C++ сам по себе не вносит никаких тормозов, это же zero overhead language. И нельзя говорить, что виртуальные функции замедляют программу, потому что для реализации того же средствами C пришлось бы самому реализовывать полиморфизм каким-нибудь другим способом. То же относится к RTTI и исключениям (кстати, последние могут быть даже быстрее кодов возврата, потому что они могут быть реализованы как переход прямо к обработчику, минуя длинную цепочку условных переходов типа if(status < 0) return -ESOMETHING).


Если позанудствовать, то можно упомянуть, что на некоторых компиляторах возможен незначительный overhead из-за включенной обработки исключений. Т.е. при прочих равных код на С будет скомпилирован в меньший по размеру бинарь. Скорость исполнения будет отличаться, скорее всего, весьма и весьма незначительно.

Если выключить исключения и rtti — разницы скорее всего не будет (для g++ 3.4.x) это проверено
Re[2]: Преимущество C перед C++
От: Mr.Cat  
Дата: 24.02.10 12:30
Оценка:
Здравствуйте, IID, Вы писали:
IID>Если есть нормальный С++ компилятор, то преимуществ у чистого С нет. За деталями — в поиск.
А поиск с тобой как-то не очень-то согласен: http://www.rsdn.ru/forum/decl/3680439.aspx
Автор: yumi
Дата: 25.01.10
Re: Преимущество C перед C++
От: minorlogic Украина  
Дата: 24.02.10 12:35
Оценка: +2
Здравствуйте, Аноним, Вы писали:

А>Некоторые говорят что ....


Вот "Некоторые " пускай и объясняют.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[3]: Преимущество C перед C++
От: Roman Odaisky Украина  
Дата: 24.02.10 12:51
Оценка: +1
Здравствуйте, Mr.Cat, Вы писали:

IID>>Если есть нормальный С++ компилятор, то преимуществ у чистого С нет. За деталями — в поиск.

MC>А поиск с тобой как-то не очень-то согласен: http://www.rsdn.ru/forum/decl/3680439.aspx
Автор: yumi
Дата: 25.01.10


Завязался нудный спор, в котором часто упоминались Lisp, Nemerle и ключ от квартиры, где деньги лежат, а C как-то обойден вниманием. В статье-то автор ругает некоторые особенности C++, которых в C нет, что никак не отвечает на исходный вопрос.
До последнего не верил в пирамиду Лебедева.
Re[3]: Преимущество C перед C++
От: IID Россия  
Дата: 24.02.10 12:59
Оценка: +2
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, IID, Вы писали:

IID>>Если есть нормальный С++ компилятор, то преимуществ у чистого С нет. За деталями — в поиск.
MC>А поиск с тобой как-то не очень-то согласен: http://www.rsdn.ru/forum/decl/3680439.aspx
Автор: yumi
Дата: 25.01.10


Ну и ? Вброс очередного Си-фага. Дай дибилу топор — он себе ногу отрубит. Преимуществ у чистого Си нету и точка.
kalsarikännit
Re[4]: Преимущество C перед C++
От: Mr.Cat  
Дата: 24.02.10 13:37
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:
RO>Завязался нудный спор, в котором часто упоминались Lisp, Nemerle и ключ от квартиры, где деньги лежат, а C как-то обойден вниманием. В статье-то автор ругает некоторые особенности C++, которых в C нет, что никак не отвечает на исходный вопрос.
Ненене, все как раз в тему. По ссылкам — обсуждение иного, нежели в C++, подхода к решению проблем C. А поскольку красивые подходы всегда универсальны, то обсуждение немного отошло от непосредственно C. Какбы иллюстрация того, что C++ не нужен.
Re[4]: Преимущество C перед C++
От: Mr.Cat  
Дата: 24.02.10 13:40
Оценка: +1
Здравствуйте, IID, Вы писали:
IID>Ну и ? Вброс очередного Си-фага.
Да не, не надо так злиться. Просто человек высказывает свое мнение насчет того, почему C++ не нужен. Кто-то согласен, кто-то нет, кому-то пофиг.
Re[5]: Преимущество C перед C++
От: Roman Odaisky Украина  
Дата: 24.02.10 14:19
Оценка: +2
Здравствуйте, Mr.Cat, Вы писали:

RO>>Завязался нудный спор, в котором часто упоминались Lisp, Nemerle и ключ от квартиры, где деньги лежат, а C как-то обойден вниманием. В статье-то автор ругает некоторые особенности C++, которых в C нет, что никак не отвечает на исходный вопрос.

MC>Ненене, все как раз в тему. По ссылкам — обсуждение иного, нежели в C++, подхода к решению проблем C. А поскольку красивые подходы всегда универсальны, то обсуждение немного отошло от непосредственно C. Как бы иллюстрация того, что C++ не нужен.

C++ нужен. Это единственный высокоуровневый язык с нулевым оверхедом.
До последнего не верил в пирамиду Лебедева.
Re[6]: Преимущество C перед C++
От: Mr.Cat  
Дата: 24.02.10 14:27
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:
RO>C++ ... высокоуровневый язык с нулевым оверхедом...
... на использование низкоуровневого подхода.
Хотя "не платишь за то, что не используешь" — тоже полезное свойство, конечно.
Re[5]: Преимущество C перед C++
От: Roman Odaisky Украина  
Дата: 24.02.10 15:14
Оценка: +1
Здравствуйте, Mr.Cat, Вы писали:

IID>>Преимуществ у чистого Си нету и точка.

MC>Просто человек высказывает свое мнение насчет того, почему C++ не нужен.

Так это же совсем разные вещи — сравнение C с C++ и C++ со всем остальным.
До последнего не верил в пирамиду Лебедева.
Re[4]: Преимущество C перед C++
От: Roman Odaisky Украина  
Дата: 24.02.10 15:24
Оценка: +1 :)
Здравствуйте, IID, Вы писали:

IID>Вброс очередного Си-фага.


Что же ты везде видишь злобных троллей? Бедного анонима ввели в заблуждение какие-то таинственные некоторые, он пошел на форум выяснить, так ли обстоит дело, а мы тут сами стали флеймить о чём-то не относящемся к делу, вплоть до Lisp vs Nemerle. Даже тему перенесли в КСВ, где многострадальный аноним ее и не найдет! Не надо сидеть так много под мостом, и зеленые тролли не будут чудиться на каждом шагу!

По-моему, больше вреда наносят не сами тролли, они и встречаются не так часто, а те, кто усматривает их зеленые лапы в каждом втором сообщении.
До последнего не верил в пирамиду Лебедева.
Re[6]: Преимущество C перед C++
От: Mr.Cat  
Дата: 24.02.10 17:42
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:
RO>Так это же совсем разные вещи — сравнение C с C++ и C++ со всем остальным.
Ага. Поэтому надо все-таки определиться, что мы тут будем обсуждать: "C as is или C++ as is" или "боремся с трудностями C: C++ или что-то другое?".
Re: Преимущество C перед C++
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.02.10 18:14
Оценка: +6 -2
Здравствуйте, Аноним, Вы писали:

А>Некоторые говорят что код на С работает быстрее чем C++. Т. е. для разработки высокопроизводительного SW предпочтительно использовать С вместо C++. Кто нибудь может подсказать в чем это преимущество (не считая использование виртуальных функции, здесь очевидно почему медленее)


Врут. Единственное преимущество С над C++ заключается в том, что код на C проще читать, писать и понимать (на C, на C, а не оговорился)
Re[2]: Преимущество C перед C++
От: Roman Odaisky Украина  
Дата: 24.02.10 20:49
Оценка: 1 (1)
Здравствуйте, Pzz, Вы писали:

Pzz>Врут. Единственное преимущество С над C++ заключается в том, что код на C проще читать, писать и понимать (на C, на C, а не оговорился)


Смотря как писать на C++. Во-первых, на C++ можно писать точно так же, как на C. Во-вторых, писать можно тоже по-разному:

struct X* x = (X *)malloc(sizeof(X));
x->a = 42;
x->b = "hello world";
do_something(x);
free(x);

а можно:
X* x = new X;
x->a = 42;
x->b = "hello world";
do_something(x);
delete x;

а можно:
X* x = new X(42, "hello world");
do_something(x);
delete x;

а можно:
std::unique_ptr<X> x(new X(42, "hello world"));
do_something(x.get());

и т. п.
До последнего не верил в пирамиду Лебедева.
Re[7]: Преимущество C перед C++
От: Roman Odaisky Украина  
Дата: 24.02.10 20:51
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

RO>>Так это же совсем разные вещи — сравнение C с C++ и C++ со всем остальным.

MC>Ага. Поэтому надо все-таки определиться, что мы тут будем обсуждать: "C as is или C++ as is" или "боремся с трудностями C: C++ или что-то другое?".

Ни то, ни другое. Аноним вообще не ставил вопрос, что лучше. Он просто хотел выяснить, правда ли, что некая характеристика более свойственна C, чем C++.
До последнего не верил в пирамиду Лебедева.
Re[3]: Преимущество C перед C++
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.02.10 21:05
Оценка: 1 (1) +2 -1 :))
Здравствуйте, Roman Odaisky, Вы писали:

RO>Здравствуйте, Pzz, Вы писали:


Pzz>>Врут. Единственное преимущество С над C++ заключается в том, что код на C проще читать, писать и понимать (на C, на C, а не оговорился)


RO>Смотря как писать на C++. Во-первых, на C++ можно писать точно так же, как на C. Во-вторых, писать можно тоже по-разному:


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

Трудно остановиться, и еще труднее объяснить другим членам команды, в каком именно месте надо останавливаться. Плюс, появление в проекте 3rd party библиотек, написанных на "хорошем" C++ (том, который без поллитра не поймешь), тоже сдвигает границы.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.