C/C++

C и C++ вопросы

Меня интересует два вопроса.
  1. Имеет ли C++ обратную совместимость с C
  2. Что изучать конкретно по C? Хочется что-то сложное, грубо говоря, интересное, а не банальные основы, т к хотел бы в будущем создавать что-то низкоуровневое, вроде ОС, или другого ПО. Соответсвенно надо черпать знания. Откуда?
Они почти совместимы. Комитеты по стандартам C и C++ - две разные организации с разным составом участников. Так что если первоначально C++ был полностью обратно совместим с C, то сейчас C-подмножество C++ немного отличается от чистого C. Впрочем, реализации C и C++, предлагаемые компиляторами, обычно совместимы намного лучше, чем стандарты языков.

Знания черпают из учебников. Например, знания о том, как писать ОС, получают из ВУЗовского учебника по операционным системам.

И чтобы было что-то интересное, сначала надо читать скучные учебники и выполнять скучные учебные задания. Чтобы сразу и интересный проект делать - это только у неучей-говнокодеров, клепающих видеокурсики.
Вадим Корнелюк
Вадим Корнелюк
62 277
Лучший ответ
Алексей Мороз Естественно я понимаю что сначала надо Основные вещи, думал вдруг найдётся что посоветовать из книг, учебников?
обратная совместимость - громко сказано. Си код или библиотека без особого труда заведётся на плюсах(есть конечно нюансы, в виде платформозависимого кода, но в подробности сейчас вдаваться не буду.).
Обратно же придётся костылявить совместимую библу, дабы ненароком не вернуть в Сишечку чего-то плюсового, но при определённой сноровке и такое возможно.

Касаемо источников информации тоже не всё так просто. Изучи сначала азы, да не просто изучи, а вызубри. Потом изучай платформу, на которой ведёшь разработку или под которую будешь писать. Как правило Си код на разных платформах может весьма сильно отличаться, будь-то тот же Windows, Linux, MacOS (Хотя под них разработка на Си не имеет особого смысла, если только ты не пишешь какой-то высокопроизводительный сервер, базу данных или движок).
Намного чаще же Си используют для встраиваемых систем, будь-то разные микроконтроллеры и другие аппараты без как-таковой ОС, вроде систем умного дома.

В Си не получится халтурить, от слова совсем. Он нужен что-бы нужные тебе вещи выполнялись точно и быстро. И того и другого не получится добиться не контролируя всё. Иначе всё теряет смысл и вообще можно на Python в 2.5 строчки написать(который кстати тоже ещё нужно уметь обгонять используя Си).

P.S. Не использую C в профессиональной сфере, просто увлекаюсь. Знатоки поправят, если я где-то ошибся.
Роман Богдан
Роман Богдан
1 453
Есть такая программерская забава - писать Forth (Форт) на разных языках программирования, начиная с Ассемблера, С/С++ и далее по списку до чего дотянется фантазия и желание. :)

P.S. Forth на Github