Расширение файла кода C ++? .cc против .cpp - PullRequest
507 голосов
/ 09 октября 2009

Я видел код C ++, сохраненный как файлы .cc и .cpp. Есть ли разница между ними?

Руководство по стилю Google предлагает .cc, но не дает объяснения.

В основном я занимаюсь программами в системах Linux.

Ответы [ 18 ]

8 голосов
/ 09 октября 2009

Как и в большинстве стилевых соглашений, важны только две вещи:

  1. Будьте последовательны в том, что вы используете, где это возможно.
  2. Не создавайте ничего, что зависит от конкретного используемого выбора.

Может показаться, что они противоречат друг другу, но каждый из них имеет ценность по своим собственным причинам.

8 голосов
/ 09 октября 2009

Неважно, какое из этих расширений вы бы использовали. Выберите то, что вам больше нравится, просто будьте последовательны с именами. Единственное исключение, о котором я знаю в связи с этим соглашением об именах, заключается в том, что я не могу сделать WinDDK (или сейчас WDK) для компиляции .cc файлов. В Linux это вряд ли проблема.

7 голосов
/ 09 октября 2009

Я использую .C и .h для источника и заголовка соответственно. С этим выбором приятно отметить, что в командной строке легко использовать *.[Ch] для выбора всех файлов кода. Использование .C может быть проблемой для нечувствительных к регистру файловых систем, но если у вас есть foo.c и foo.C в одном каталоге, вы все равно заслуживаете того, что получаете:)

7 голосов
/ 09 октября 2009

.C и .cc кажутся стандартными для (немногих) Unix-ориентированных программ на C ++, которые я видел. Я всегда использовал .cpp сам, так как я действительно работаю только на Windows, и это было стандартом там, как и всегда.

Я рекомендую .cpp лично, потому что ... это означает "C Plus Plus". Конечно, жизненно важно, чтобы расширения файлов были аббревиатурами, но если это обоснование окажется недостаточно убедительным, другие важные вещи - это не использование клавиши Shift (исключающей .C и .c++) и, по возможности, избегание метасимволов регулярных выражений. (что исключает .c++ - к сожалению, вы не можете избежать ., конечно.).

Это не исключает .cc, поэтому, хотя на самом деле это ничего не означает (или делает это?), Это, вероятно, хороший выбор для Linux-ориентированного кода.

6 голосов
/ 30 мая 2017

Расширение .cc необходимо для использования неявных правил в make-файлах. Просмотрите эти ссылки, чтобы лучше понять make-файлы, но посмотрите в основном второй, так как в нем четко говорится о полезности расширения .cc:

FTP: //ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_2.html

https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_10.html

Я только что узнал об этом сейчас.

6 голосов
/ 09 октября 2009

cpp = c plus plus и, таким образом, я предпочитаю, что означает cc или cxx?

1 голос
/ 24 января 2019

Я начинаю новый проект C ++ и начинаю искать последние в стиле C ++. Я попал сюда по поводу именования файлов и подумал, что поделюсь своим выбором. Здесь идет:

Страуструп рассматривает это скорее как деловое соображение, чем техническое .

Следуя его совету, давайте проверим, чего ожидают цепочки инструментов.

Для UNIX / Linux вы можете интерпретировать следующие стандартные правила GNU make как предпочтение суффиксу имени файла .cc, так как .cpp и .C - это просто псевдонимы:

$ make -p | egrep COMPILE[^=]+=
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.cpp = $(COMPILE.cc)
COMPILE.C = $(COMPILE.cc)

(Примечание: псевдоним COMPILE.cxx по умолчанию отсутствует)

Так что, если вы ориентируетесь на UNIX / Linux, и .cc, и .cpp - очень хорошие варианты.

При нацеливании на Windows вы ищете проблемы с .C, так как ее файловая система не учитывает регистр. И вам может быть важно отметить, что Visual Studio предпочитает суффикс .cpp

При нацеливании на macOS обратите внимание, что Xcode предпочитает .cpp / .hpp (только что проверено на Xcode 10.1). Вы всегда можете изменить шаблон заголовка на использование .h.

Для чего бы это ни стоило, вы также можете основывать свое решение на кодовых базах, которые вам нравятся. Google использует .cc , а LLVM libc ++ использует .cpp, например.

А как насчет заголовочных файлов? Они компилируются в контексте файла C или C ++, поэтому компилятору или системе сборки не нужно отличать .h от .hpp. Однако может возникнуть проблема с подсветкой синтаксиса и автоматическим отступом вашего редактора / IDE, но это можно исправить, связав все файлы .h с режимом C ++. В качестве примера, моя конфигурация emacs в Linux загружает все файлы .h в режиме C ++ и прекрасно редактирует заголовки C. Кроме того, при смешивании C и C ++ вы можете следовать этому совету .

Мой личный вывод : .cpp / .h - путь наименьшего сопротивления.

0 голосов
/ 20 апреля 2019

CC - расширение файла исходного кода, используемого в программах на c ++. Эти файлы CC можно редактировать с помощью различных текстовых редакторов, но они не читаются.

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