Разве не сказано "C / C ++" неправильно? - PullRequest
23 голосов
/ 07 октября 2008

Я видел много вопросов, которые неправильно используют выражение «C / C ++». Причины на мой взгляд:

  • Программисты для начинающих C и C ++, вероятно, не понимают разницу между этими двумя языками.
  • Людям это безразлично, так как они хотят получить общий, быстрый и "грязный" ответ

Хотя C / C ++ иногда можно интерпретировать как «либо C, либо C ++», я думаю, что это большая ошибка. C и C ++ предлагают разные подходы к программированию, и даже если код C можно легко внедрить в программы на C ++, я думаю, что ссылаться на два разных языка с этим единственным выражением (C / C ++) неправильно.

Это правда, что в любом случае некоторые вопросы можно рассматривать как вопросы C или C ++. Что вы думаете об этом?

Ответы [ 17 ]

2 голосов
/ 07 октября 2008

У меня сложилось впечатление, что весь код c является действительным кодом c ++.

2 голосов
/ 07 октября 2008

Не говорит «C / C ++» неправильно?

Нет, это не так. Например, международная корпорация Watcom , основанная более 25 лет назад , назвала свой набор компиляторов и инструментов C и C ++ «Watcom C / C ++», и этот продукт все еще разрабатывается и доступен в форме с открытым исходным кодом. как OpenWatcom C / C ++

1 голос
/ 07 октября 2008

Если это сложный вопрос, требующий написания более чем одной функции, да, это может быть неправильно.

Если просто спросить подробности о sprintf или манипулировании битами, я думаю, что это может быть законным (последний может даже быть помечен как C / C ++ / Java / C #, я полагаю ...).

1 голос
/ 07 октября 2008

Тот, кто задает вопрос, должен писать C, C ++ или C / C ++ в зависимости от вопроса.

Из того, что я видел, вы можете написать код C ++ C или C ++ . Оба работают, но код C ++, который не написан в стиле C, обычно легче поддерживать в долгосрочной перспективе.

В конце концов, все зависит от конкретного вопроса. Если кто-то спрашивает, как объединить строки, то очень важно, хочет ли он решения на C или C ++. Или другой пример, если кто-то запрашивает алгоритм qsort. Для поддержки различных типов вы можете использовать макросы с C и шаблоны с C ++ и т. Д.

1 голос
/ 08 октября 2008

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

Пожалуйста, помните, что оригинал реализации C ++ были просто прекомпилятор, который выводит код C для «настоящий» компилятор.

У меня есть друг (который пишет компиляторы C ++ - да, во множественном числе), который обиделся бы на ваше первое предложение. Компилятор, чей объектный код является исходным кодом на языке C, является таким же компилятором, как и любой другой. Суть компилятора в том, что он понимает синтаксис языка и генерирует новый код на его основе. Препроцессор не знает языка и просто переформатирует свой ввод.

Помните, что компиляторы C, которые будут компилировать выходные данные этих компиляторов C ++, сами будут выводить код ASM, будут затем выполняться через ассемблер.

0 голосов
/ 18 октября 2010

Не только эти два языка разные, но и подходы разные. C ++ является ОО-языком, а С - процедурным языком.

Нужно ли упоминать шаблоны?

Кроме того, существуют различия в стандартах C и C ++. Если что-то хорошо в C, не нужно компилировать в C ++

0 голосов
/ 12 октября 2008

Я склонен ставить C / C ++ в своих вопросах.

Обычно я ищу что-то, что я могу использовать в своем приложении c ++.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...