- Обучение С++. Что если начать на Linux?
- Накипело!
- команда cpp в Linux с примерами
- C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Re: C или C++ что выбрать
- Чем отличается C от C++
- Для чего изучать
Обучение С++. Что если начать на Linux?
Накипело!
В нынешней системе школьного образования заточка под операционную систему Microsoft поражает: за очень редким исключением вы сможете где-нибудь увидеть что-то вроде Edubuntu или русский ALT Linux, но остальном это Windows. По моему мнению, давно пора еще в школах знакомить детей с другим взглядом на то, каким должен быть интерфейс между человеком и железом, а не искать общих путей. Может быть именно такой сравнительно-аналитический взгляд на вещи позволит поднять крайне низкий уровень компьютерной грамотности у выпускников школ, которые даже не могут оформить текст в Word или составить добротную презентацию в PowerPoint.
Искренне удивляет, что в школах считается сверхсложным и даже мистическим составлять двумерные массивы в том же Pascal’e, который к слову, тоже давным давно пора заменить на более гибкий и удобный Python или JavaScript. Уважаемые преподаватели, какой должна быть мотивация ученика, если его учат на мертвом языке? Мы же для закрепления правил грамматики не учим сперва славянский, а потом русский и другие. Так какого черта?!
Учитывая модность профессии программиста и определенную романтику в головах молодых людей, навеянную голливудским кино, люди поступают в ВУЗы и сталкиются с рядом сложностей: их голова начинает резко расширяться, что неминуемо приводит сперва к усталости, а затем и к разочарованию в своем выборе. Факт остается фактом: если вы связываете себя с профессией, которая требует постоянного самосовершенствования, то начинайте это делать еще до поступления. Есть множество материалов, который помогут вам быть более подготовленными в процессе учебы и позволит найти работу по специальности уже к 3-4 курсу обучения. Шевелитесь!
На фоне таких рассуждений ко мне пришла сделать небольшой туториал по тому, как написать, скомпилировать и запустить программу на C++ в Linux без специальных средств (IDE). Такой подход сможет познакомить начинающего программиста с процессом разработки в наиболее тривиальном виде, а также с принципиально новой для него операционной системой Linux. В конце своего хабрапоста я напишу список литературы и полезные ссылки.
Начнем с того, что нам понадобится:
-Дистрибутив Linux (возьмем Ubuntu);
-Установленный компилятор g++;
-Обычный текстовый редактор (gedit);
-Терминал;
Источник
команда cpp в Linux с примерами
cpp — это препроцессор языка C, он автоматически используется компилятором C для преобразования вашей программы перед компиляцией. Он также называется макропроцессором, потому что он используется для обозначения сокращений для более длинного фрагмента кода. Он может использоваться только с исходным кодом C, C ++ и Objective-C. Использование с другими языками программирования может вызвать неопределенные проблемы.
Синтаксис:
Некоторые важные параметры:
- -D name : предопределить имя как макрос.
- -D имя = определение : содержимое определения маркируется и обрабатывается так, как если бы оно было записано в самой программе.
- -U name : отменить любое предыдущее определение макроса.
- -undef : не предопределять какие-либо системные или GCC-специфичные макросы. Стандартные предопределенные макросы остаются определенными.
- -I dir : добавить каталог dir в список каталогов для поиска файлов заголовков.
- -Wall : включает все необязательные предупреждения, которые желательны для нормального кода.
- -Wcomments : Предупреждать всякий раз, когда начинается / комментирует последовательность запуска / * в комментарии / *, или когда в комментариях // появляется обратная косая черта.
- -Wendif-tags : Предупреждать всякий раз, когда за #else или #endif следует текст.
- -w : Подавить все предупреждения, в том числе те, которые GNU CPP выдает по умолчанию.
- -M : вместо вывода результата предварительной обработки выведите правило, подходящее для make, описывающее зависимости основного исходного файла.
- -MM : аналогично -M, но не упоминаются файлы заголовков, которые находятся в системных каталогах заголовков.
- -xc
- -x с ++
- -x цель-с
- -x ассемблер-с-cpp : все четыре выше Укажите исходный язык: C, C ++, Objective-C или ассемблер. Это не имеет ничего общего со стандартами соответствия или расширения; он просто выбирает, какой базовый синтаксис ожидать.
Примеры: мы создали два кода, чтобы объяснить концепцию, мы будем называть их code_a.c и code_b.c .
- Используя команду cpp:
Это приведет к следующему выводу:
Вывод слишком велик, и нам на самом деле не нужно это понимать концепцию. Мы поняли, что он просто вызывает и заменяет весь фрагмент кода в заголовочных файлах программы.
используя опцию -D:
Обратите внимание, что он печатает тот же результат. Это потому, что он использовал макрос, который мы объявили в командной строке.
Используя опцию -M :
Заметил разницу. Это потому, что он выводит только правила, необходимые для make .
Источник
C или C++ что выбрать
День добрый! Я начинающий программист, очень хочется писать под Linux. Что же мне выбрать C или С++? Порекомендуете! Заранее спасибо!
Re: C или C++ что выбрать
Мне лично, больше нравится С99.
Re: C или C++ что выбрать
С Си будет жить проще. Когда станет не хватать, учи сразу схему/лисп
Re: C или C++ что выбрать
Re: C или C++ что выбрать
А в каком направлении хочется писать?
Re: C или C++ что выбрать
Re: C или C++ что выбрать
Re: C или C++ что выбрать
> А в каком направлении хочется писать?
BioReactor real-time control management.
Re: C или C++ что выбрать
в направлении сетевых приложений, в частности в области Ldap.
Re: C или C++ что выбрать
Re: C или C++ что выбрать
>А в каком направлении хочется писать?
Настенная живопись, то бишь расписание стен остатками живых программистов.
Re: C или C++ что выбрать
Сначала лучше выучить C
Re: C или C++ что выбрать
Да и лучше не учить, а решать какие-нибудь задачи, используя Си как инструмент. Практика в первую очередь.
Re: C или C++ что выбрать
Если ничего до сих пор серьзного не написал, то лучше всего начать с C. Потом к чему-нибудь более специализированному и удобному в своей области.
Существует обоснованное мнение, что если на чём то пишешь, то нужно знать как оно работает. т.е. используешь Java — разберись с устройством VM и GC. Используешь Python — напиши пару интерпретаторов. Используешь C — учи asm. 😉
Re: C или C++ что выбрать
Тему сперва в talks, потом в топку :)))
А вообще, конечно pure C 🙂 или С & glib
Re: C или C++ что выбрать
Недавно в Москву приезжал дядька из МС, говорил, что они давно уже экспериментируют с Хаскелем. Уверял, что ФП и в частности Хаскель — это очень круто, потому что можно автоматически распараллеливать код, а это сейчас очень важно в свете многоядерных процессоров.
Re: C или C++ что выбрать
А на μC++ они не смотрели?
Re: C или C++ что выбрать
Кстати, есть еще C#! 🙂
Re: C или C++ что выбрать
не знаю, может и смотрели, но упомянул он только о Хаскеле
Re: C или C++ что выбрать
>Недавно в Москву приезжал дядька из МС, говорил, что они давно уже экспериментируют с Хаскелем.
вас это удивляет? ghc разрабатывается в microsoft research’е
>Уверял, что ФП и в частности Хаскель — это очень круто, потому что можно автоматически распараллеливать код, а это сейчас очень важно в свете многоядерных процессоров.
то что можно — это все понятно(функции «чистые»), но на практике не выгодно автоматически распараллеливать (хотя паралелизовать при помощи Control.Parallel очень легко и понятно, хотя явный хак). ну еще не стоит забывать про ленивость, она сильно производительность снижает
Re: C или C++ что выбрать
>то что можно — это все понятно(функции «чистые»), но на практике не выгодно автоматически распараллеливать
и что сие должно означать ?
>хотя паралелизовать при помощи Control.Parallel очень легко и понятно, хотя явный хак
в каком месте это хак, да ещё и явный ?
>ну еще не стоит забывать про ленивость, она сильно производительность снижает
совершенно верно. только не всегда, не сильно, не снижает. и не ленивость
Re: C или C++ что выбрать
если выбор из C и C++, то несомненно C. независимо от того, какой высокоуровневый язык будешь применять в дальнейшем, без знания C далеко не уйдёшь. удачи
Re: C или C++ что выбрать
> ну еще не стоит забывать про ленивость, она сильно производительность снижает
В теории она вовсе не обязана этого делать. И умные компиляторы об этом знают (см. Clean).
Источник
Чем отличается C от C++
На 99% — ничем, но в C++ есть родная поддержка ООП.
Короткий ответ: C++ — это улучшенный C. У этих языков одинаковый на 99% синтаксис и команды, но C — это больше про структурное и процедурное программирование, а C++ — про объектно ориентированное.
C — язык, который сделал в 1973 году Деннис Ритчи. Главная цель языка — скорость, быстродействие и универсальность. Язык изначально проектировался как системный, чтобы на нём можно было писать код для процессоров, драйверов и создавать на нём операционные системы. В то время большинство этих вещей делали на ассемблере, и Ритчи хотел это упростить.
C++ придумал Бьёрн Страуструп в начале восьмидесятых, когда ему не хватало возможностей стандартного C. Он сделал язык более строгим, добавил в него классы, ООП-подход и перегрузку операторов, сохранив скорость оригинального С. В 1983 году Бьёрн переименовал язык из «C с классами» в C++.
👉 О перегрузке операторов как-нибудь в другой раз 🙂
C | C++ |
Код читается проще
Проще портировать код на другие платформы
Есть структуры и переменные типа «структура»
Наследование — это структура внутри структуры
void — обязательное слово
Можно объявлять глобальную переменную несколько раз
Исключения нужно конструировать самому
Нет перегрузки операторов
Почти всё стандартно и предсказуемо
Для чего изучать
C — классический язык разработки системного ПО и любого софта для микропроцессоров. На нём написаны Linux, большая часть Windows и MacOS. Если взять любой современный носимый гаджет или электронное устройство, в большинстве случаев они работают тоже под управлением программы на C. В мире огромное количество кода, который написан на C (и ещё столько же будет написано), поэтому проблем с работой у C-программистов не предвидится.
C++ — выбор тех, кому одновременно нужна вся мощь C и гибкость объектно ориентированного программирования. Counter-Strike, StarCraft и World of Warcraft написаны на C++, а это значит, что можно сочетать производительность C и современные технологии. Часть движка Unity тоже написана на C++, чтобы получить прямой доступ к памяти и ресурсам системы.
На самом деле нет такой уж большой разницы между C и C++. Это одинаково мощные и быстрые языки, просто у них разная область применения и стиль программирования.
Если вам важна скорость, производительность и относительная простота языка — смотрите на C, там это всё есть. С другой стороны, из-за простоты в нём многие вещи придётся делать вручную — обрабатывать исключения, следить за сроком жизни переменных и структур или писать дополнительный код.
Сторонникам ООП больше подойдёт C++ — в нём уже есть всё, что нужно для работы с объектами, областями видимости и прочим добром. Иногда такой код сложнее поддерживать и он может работать на несколько процентов медленнее, чем на C, но в нём есть та свобода, которой нет в оригинальном языке. Та же перегрузка операторов — удивительно мощная вещь в умелых руках, которая может сэкономить много времени и ресурсов.
Чтобы было понятнее, скоро напишем подробно про оба языка. А вы не болейте и берегите себя.
Источник