Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107

Предназначение языков C и C++

16.11.2017, 11:42. Показов 7267. Ответов 94
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую.
Есть несколько вопросов по C и C++. Прим. Вопросы адресованы тем, кто не является нубом в C и C++.
Итак:
1. Для кого C++?
В целом интересует ваше имхо кому нужно учить C++.
Если я допустим хочу разрабатывать игры, причём включая те, которые не требуют высокой производительности, текстовые онлайн MUD игры, при этом я не хочу писать движок с нуля, а использовать готовый, может ли мне подойти C++?
Поясню конкретнее. Дело в том, что мне обязательно нужно разрабатывать сервер на Linux. Тут 3 варианта. C/C++/Python.
C - многие движки MUD игр в основном именно на C. Но есть мнение, что на C сложнее писать, чем на C++.
C++ - много движков также имеется, но возможности языка шире, что замедляет процесс изучения.
Python - в целом хорош, по синтаксису, по библиотекам, но имхо не надежен. Я хочу его избежать, но рассматриваю в крайних случаях. Низкая производительность.
2. Тот же вопрос, что был первый. Только с C. Для кого C? Стоит ли мне вообще рассматривать C?
3. Говорят, что разработка на C гораздо труднее, чем на C++. На сколько это правда в отношении прикладного программного обеспечения?
4. И в отношении C, и в отношении C++, на сколько я много должен знать, если не собераюсь разрабатывать с нуля, а использовать готовые инструменты?
В целом я смотрел тот же circlemud 2000 года, там больше, чем основы C переменные, условия, циклы, указатели, не используется. В основном сама библиотека C.
5. Не знаю, как с C, но про C++ говорят, что для решения нужно много лет его изучать. На сколько это правда в моем случаи? Если я нацелен на готовые инструменты, нужно ли мне знать много?
6. Можно ли изучать одновременно C и C++?
В общем думаю тему вы уловили, потому приму любые рассуждения.
Всем заранее благодарен!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.11.2017, 11:42
Ответы с готовыми решениями:

Программа по изучению языков
Здравствуйте, помогите пожалуйста утопающему. Пишу прогу по изучению языков. Мне нужны ваши советы, как и где можно хранить данные?

С++ 4 и 5 поколение языков программирования
Является ли С++ языком 4 поколения? Пятое поколение определяет судьбу программистов С++ в позитивную или негативную сторону?

О целях c++ и других языков
Здравствуйте. Подскажите пожалуйста какие цели у c++, т.е что можно на нем написать (интересует высокоуровневое программирование), и если...

94
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,086
16.11.2017, 15:06
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от TRam_ Посмотреть сообщение
Для С++ было бы более характерным
Это уже другая задача, не та где x и у передаются снаружи. Для С++ не характерно заполнение полей объекта, используемых только перед вызовом одного конкретного метода.
C++
1
2
3
SomeClass s;
s.x=1; s.y=2;
s.some_method();
C++
1
2
SomeClass s;
s.some_method(1,2);
Что там происходит внутри метода нам неизвестно. Будет ли меняться состояние объекта (скорее всего, да, иначе сделали бы статическим) можно понять только из комментариев и документации.
Цитата Сообщение от Valeryn Посмотреть сообщение
какой из двух вариантов более интуитивно понятен?
"Какой из двух вариантов: С++ или Си в стиле С++ понятнее"? Не находите, что стили программирования на разных языках отличаются?
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.11.2017, 15:07
Цитата Сообщение от jahdjkhasjdhjah Посмотреть сообщение
вот, например http://benchmarksgame.alioth.d... 64q/c.html
нагуглил за минуту.
ну и что это за фигня?

ткнул в первый попавшийся тест:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// The Computer Language Benchmarks Game
// http://benchmarksgame.alioth.debian.org/
//
// Contributed by Jeremy Zerfas
// Based on the C++ program from Jon Harrop, Alex Mizrahi, and Bruno Coutinho.
// *reset*
 
// This controls the width of lines that are output by this program.
#define MAXIMUM_LINE_WIDTH  60
 
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
 
typedef off_t off64_t; // This is needed to keep APR happy on 32 bit systems.
#include <apr_pools.h>
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* The Computer Language Benchmarks Game
 * http://benchmarksgame.alioth.debian.org/
 *
 * contributed by Jon Harrop
 * modified by Alex Mizrahi
 * modified by Andreas Schäfer
 * very minor omp tweak by The Anh Tran
 * modified to use apr_pools by Dave Compton
 *  *reset*
 */
 
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <apr_pools.h>
 
 
const size_t    LINE_SIZE = 64;
 
class Apr
очевидно жеж - здесь коды разные.

вы не можете сравнивать эффективность кодогенерации компиляторов,
если будете билдить разные коды.

теперь я повторю свой вопрос:

вы действительно думаете что printf
собранный сишным компилем
будет работать быстрее, чем крестанутым?

сами вы это не проверяли лично.
это я уже понял.
значит высосали предположение из пальца.

теперь покажите мне честный бенчмарк.
если сможете.

Цитата Сообщение от jahdjkhasjdhjah Посмотреть сообщение
снова погуглю за вас
теперь огласите список игор сделанных на с++
на том же анриле, например.

сравните эти списки.

сравните количество игр класса ААА
и сравните количество штампованных казуальных аркад

а затем сравните списки тех игор,
которые реально стали популярны и знамениты.

затем, подумайте и сделайте свои выводы о том,
почему игроделы считают, что юнити - для школоты.
0
77 / 50 / 16
Регистрация: 17.05.2015
Сообщений: 262
16.11.2017, 15:10
Цитата Сообщение от jahdjkhasjdhjah Посмотреть сообщение
вот, например http://benchmarksgame.alioth.d... 64q/c.html
нагуглил за минуту.
А я открыл и посмотрел. И увидел то, что в С++ юзается местами Си код.
Там где у Си написан алгоритм с НУЛЯ! на С++ юзается stlный алгоритм. (а почему stl, а не boost там?).
Например в binary-trees меня смущает нагрузка на процессор.
у Си она растет.
У С++ она падает.

В том же binary-trees я вижу у С++ юзаются Сишные либы. Но вывод почему то iostream.

В некоторых тестах С++ проигрывает расту.
А вот в этом списке тестов уже С++ лидирует!!!!
http://benchmarksgame.alioth.d... q/cpp.html

а тут вообще фортран на первом месте
http://benchmarksgame.alioth.d... nbody.html

а в этом тесте, Си вообще в заднице
http://benchmarksgame.alioth.d... igits.html
0
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
16.11.2017, 15:13
Цитата Сообщение от hoggy Посмотреть сообщение
штампованных казуальных аркад
Ты не можешь почувствовать разницу между игрушкой на шарпе и AAA-игрой, если у тебя нет денег на последнее. Ну или компьютер не тянет.
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
16.11.2017, 15:18
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Это уже другая задача, не та где x и у передаются снаружи
но предложенная вами для сравнения функция на С не передаёт ничего ни наружу, ни в третью переменную. Исключая конечно стандартный вывод/ввод. Поэтому логично, что она оперирует только с x и y. Для внутренних статических переменных условия равные.

Добавлено через 3 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
SomeClass s;
s.x=1; s.y=2;
s.some_method()
предполагалось
C++
1
2
SomeClass s(1,2); // здесь проверки корректности x и y
s.some_method();
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.11.2017, 15:23
Цитата Сообщение от SlavaSokolov Посмотреть сообщение
Ты не можешь почувствовать разницу между игрушкой на шарпе и AAA-игрой, если у тебя нет денег на последнее. Ну или компьютер не тянет.
какое глубокомысленное замечание(!)
0
77 / 50 / 16
Регистрация: 17.05.2015
Сообщений: 262
16.11.2017, 15:31
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
"Какой из двух вариантов: С++ или Си в стиле С++ понятнее"? Не находите, что стили программирования на разных языках отличаются?
Я написал пример для очевидности.
Тот же OpenCV если взять. Чем удобнее оперировать. Сишным cvMat или обертками для С++ типо cv::Mat? CvCapture или cv::VideoCapture?

Как удобнее инициализировать оборудование у OpenGL|OpenCL. С помощью какой нибудь С++ обертки, где у нас все устройства представляются в виде неких обьектов и мы спокойно можем через метод получить нужную инфу или на прямую работать через Си, где для получения хотя бы списка устройств, нам придется выделить переменную под количество платформ. Под каждую платформу выделить структуру. Каждую структуру передавать в виде метода в функции нициализации и получения каких то значений и т.д. и т.п.?

Так то довольно часто на Си приходится делать некое подобие такого. (упрощенный жизненный пример)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct_memory *ctx = allocCtxMemory(...);
if (initDevices(ctx) != 0)
    return -1;
 
int counts;
getCountDevices(&counts, ctx);
 
int i ;
char hashPool[10000];
for (i = 0; i < counts; i++) {
   struct_device *device = allocDevice(...);
   getDevice(&struct_device, i);
   fprint(struct_device->out, "helloworld");
   uint64_t *value = (uint64_t *)(hashPool + (i*8));
   getDeviceValue(&struct_device, value);
}
0
73 / 86 / 40
Регистрация: 02.11.2017
Сообщений: 379
16.11.2017, 15:35
Цитата Сообщение от hoggy Посмотреть сообщение
вы действительно думаете что printf
собранный сишным компилем
будет работать быстрее, чем крестанутым?
Начнем с того, на каком языке изначально был написан этот printf?
И речь больше идет не о каком-то printf, а о формировании структур данных, об их передече и обработке. Вот здесь будет самая очевидная разница в производительности.
0
Велосипедист...
 Аватар для Mournful Max
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
16.11.2017, 15:38
Цитата Сообщение от jahdjkhasjdhjah Посмотреть сообщение
Так же, как и
C++
1
2
3
4
class X {};
X a(10);
и
X a = X(10)
если чЁ, то 10 по умолчанию типа int
Че? Оно даже не скомпилируется.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
16.11.2017, 15:45
Цитата Сообщение от jahdjkhasjdhjah Посмотреть сообщение
Давай пункты стандарта, где написано, что это не так.
8.5, если мне не изменяет память.
искать точный пункт лень.
можете погуглить, вы это "хорошо" умеете.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.11.2017, 15:48
Цитата Сообщение от jahdjkhasjdhjah Посмотреть сообщение
Начнем с того, на каком языке изначально был написан этот printf?
нет.
не начнем.
это - не принципиальный момент.

вы там что то за качество кодогенерации заикнулись.

продолжаем разговор?
0
9990 / 2962 / 497
Регистрация: 05.10.2013
Сообщений: 8,132
Записей в блоге: 243
16.11.2017, 15:48
Цитата Сообщение от Valeryn Посмотреть сообщение
Я не вижу, что бы ТС был бы как то замотивированным. Метается между вопросами об Си и С++ в контексте с играми и юзаньем готового инструмента.
Он не только между Си и C++ мечется. Посмотрите список его тем. Так ещё и всё усложняется тем, что автор абсолютно незрячий (в прямом смысле). А все готовые игровые движки рассчитаны на зрячих.
0
16.11.2017, 15:50

Не по теме:

аффтар, не слухай этих дядечек, учи то, что тебе по душе. Они тебе ща тут приведут целую кучу примеров того, что тот или иной язык круче чем другие все вместе взятые.

0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.11.2017, 15:50
Цитата Сообщение от jahdjkhasjdhjah Посмотреть сообщение
И речь больше идет не о каком-то printf, а о формировании структур данных, об их передече и обработке. Вот здесь будет самая очевидная разница в производительности.
нет. не об этом.
речь была о качестве кодогенерации.

так то, на плюсах можно написать ровно тот же самый код,
если вы вдруг не в курсе.
0
73 / 86 / 40
Регистрация: 02.11.2017
Сообщений: 379
16.11.2017, 16:07
Цитата Сообщение от hoggy Посмотреть сообщение
нет.
не начнем.
это - не принципиальный момент.
вы там что то за качество кодогенерации заикнулись.
продолжаем разговор?
Продолжаем.

смотрим:

https://ideone.com/V2OJM9
https://ideone.com/ls1AWy

Правда, здесь sprintf, а не printf, но сути особо не меняет.

Получились те самые 0,5 %, о которых я и упоминал.

Добавлено через 5 минут
Дополнительно обратите внимание на размер программ
0
77 / 50 / 16
Регистрация: 17.05.2015
Сообщений: 262
16.11.2017, 16:42
Цитата Сообщение от jahdjkhasjdhjah Посмотреть сообщение
Продолжаем.
смотрим:
https://ideone.com/V2OJM9
https://ideone.com/ls1AWy
Правда, здесь sprintf, а не printf, но сути особо не меняет.
Получились те самые 0,5 %, о которых я и упоминал.
А у меня наоборот получилось.
https://ideone.com/V2OJM9 С (Time: 6942218607)
https://ideone.com/R64P9P С++ (Time: 6878035839)
0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
16.11.2017, 16:43
jahdjkhasjdhjah, у тестов по времени всегда есть погрешность не забывайте это ваши проценты она и есть
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.11.2017, 16:44
Цитата Сообщение от jahdjkhasjdhjah Посмотреть сообщение
https://ideone.com/V2OJM9
https://ideone.com/ls1AWy

Вас не смущает что время от запуска к запуску отличается?
Ну вот вам конкретный случай. Буду тыкать в него и бить пяткой в грудь.
https://ideone.com/YZSSTp
Time: 6942218607 // С
Time: 6920476190 // С++
Итого, плюсы победили?

Не по теме:

Ну и бред...

0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
16.11.2017, 16:44
jahdjkhasjdhjah, да и я бы посмотрел на производительность Си когда можно попробовать реализовать компайл тайм алгоритмы на С++, ах да в Си нет шаблонов ...
0
73 / 86 / 40
Регистрация: 02.11.2017
Сообщений: 379
16.11.2017, 16:48
Во втором случае и время генерации кода поменьше, не смотря на то, что код больше, что вообще странно. Можно попробовать "потренероваться" на меньшем количестве итераций.
Время отличаться может потому, что все это урктиться на виртуалках. Лучше, конечно, на локалке запускать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2017, 16:48

Какой из языков си выбрать
Я студент 1 курса,и мы там изучаем си(2 часа в неделю),у нас профиль математика, и пока что для меня эти уроки легки и половину я и так уже...

Стандарты и стили языков программирования
Занимаясь программирование, например С++, иногда задумываешься, читая различную литературу и разбирая чужие коды программ, что большинство...

Изучение новых языков программирования
Всем привет! Я знаю C++ на уровне ООП (классы, наследование, шаблоны, исключения, перегрузка операторов, STL). Каждый раз, когда я...

Пересесть с языков высокого уровня на С++
Здравствуйте, я ActionScript3 разработчик и в данный момент рассматриваю возможность пересесть на с++ для возможности вести разработку под...

Программа помогающая в изучении иностранных языков в С++
Кто шарит в С++ помогите пожалуйста. Сам его только начал изучать самостоятельно, а уже дали такую задачу: Написать программу ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru