Linux cpp или 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. Использование с другими языками программирования может вызвать неопределенные проблемы.

Читайте также:  Windows 10 как отключить вход по пин коду

Синтаксис:

Некоторые важные параметры:

  • -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 году Деннис Ритчи. Главная цель языка — скорость, быстродействие и универсальность. Язык изначально проектировался как системный, чтобы на нём можно было писать код для процессоров, драйверов и создавать на нём операционные системы. В то время большинство этих вещей делали на ассемблере, и Ритчи хотел это упростить.

Читайте также:  Mbr and gpt linux

C++ придумал Бьёрн Страуструп в начале восьмидесятых, когда ему не хватало возможностей стандартного C. Он сделал язык более строгим, добавил в него классы, ООП-подход и перегрузку операторов, сохранив скорость оригинального С. В 1983 году Бьёрн переименовал язык из «C с классами» в C++.

👉 О перегрузке операторов как-нибудь в другой раз 🙂

C C++

Код читается проще

Проще портировать код на другие платформы

Из-за особенностей языка код портировать сложнее

Есть структуры и переменные типа «структура»

Есть классы и объекты

Наследование — это структура внутри структуры

Классическое наследование в стиле ООП

void — обязательное слово

Использовать слово 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, но в нём есть та свобода, которой нет в оригинальном языке. Та же перегрузка операторов — удивительно мощная вещь в умелых руках, которая может сэкономить много времени и ресурсов.

Чтобы было понятнее, скоро напишем подробно про оба языка. А вы не болейте и берегите себя.

Источник

Оцените статью