Fichier de code C++ extension?.cc vs.cpp
j'ai vu le code C++ enregistré comme Fichiers .cc
et .cpp
. Est-il une différence entre les deux?
Le Google guide de style semble suggérer .cc
, mais ne donne aucune explication.
je suis principalement concerné par les programmes sur les systèmes Linux.
16 réponses
à la fin de la journée, il n'a pas d'importance parce que c++ compilateurs peuvent traiter les fichiers dans l'un ou l'autre format. Si c'est un vrai problème au sein de votre équipe, tirez à pile ou face et passez au travail.
GNU GCC reconnaît tout ce qui suit comme étant des fichiers C++, et utilisera la compilation c++ indépendamment du fait que vous l'invoquiez via gcc ou g++: .C
, .cc
, .cpp
, .CPP
, .c++
, .cp
, ou .cxx
.
Notez le .C
- case matters in GCC, .c
est un fichier C tandis que .C
est un fichier c++ (si vous laissez le compilateur décider ce qu'il compilera).
GCC prend également en charge d'autres suffixes pour indiquer un traitement spécial, par exemple un fichier .ii
sera compilé en C++, mais pas pré-traité (destiné au code pré-traité séparément). Tous les suffixes reconnus sont détaillés à gcc.gnu.org
Grand Conseil sur lequel utiliser pour le makefile et d'autres outils, en tenant compte des outils non-compilateurs tout en décidant de l'extension à utiliser est une excellente approche pour aider à trouver une réponse qui fonctionne pour vous.
je voulais juste ajouter ce qui suit pour aider avec certains .cc
vs .cpp
info que j'ai trouvé. Les extensions suivantes sont ventilées par environnements différents (à partir de "C++ Primer Plus" book):
utilisations Unix: .C
, .cc
, .cxx
, .c
GNU C++ utilise: .C
, .cc
, .cxx
, .cpp
, .c++
utilisations numériques de Mars: .cpp
, .cxx
Borland C++ utilise: .cpp
Watcom utilise: .cpp
Microsoft Visual C++ utilise: .cpp
, .cxx
, .cc
Metrowerks Utilisations de CodeWarrior: .cpp
, .cp
, .cc
, .cxx
, .c++
les différents environnements prennent en charge différentes extensions. Moi aussi j'ai été à la recherche pour répondre à cette question et a conclu à ce poste. Basé sur ce post, je pense que je pourrais aller avec .hpp
et .cpp
pour la facilité de la reconnaissance de plate-forme/cross-tool.
.cpp
est l'extension recommandée pour C++ autant que je sache. Certaines personnes recommandent même d'utiliser .hpp
pour les en-têtes C++, juste pour différencier de C.
bien que le compilateur ne se soucie pas de ce que vous faites, c'est une préférence personnelle.
personnellement, j'utilise .cc
extension pour les fichiers de mise en œuvre, .hh
pour les en-têtes, et .inl
pour inline/modèles.
comme dit plus haut, c'est principalement une question de goût.
de ce que j'ai vu , .cc
semble être plus" open source projects oriented ", comme il est conseillé dans certains grands logiciels libres des styles de codage, tandis que . cpp
semble être plus Windowish.
- - - modifier
comme mentionné, c'est " de ce que j'ai vu " , il se peut que ce soit mal.
C'est juste que tous les projets Windows sur lesquels j'ai travaillé utilisent .cpp
, et beaucoup de projets open source (qui sont principalement sur unix-likes) utilisent .cc
.
exemples de styles de codage utilisant .cc
:
les autres extensions de fichiers utilisées sont .cxx
et .C
(capital C). Je crois que Bjarne Stroustrup a utilisé .C
à l'origine. .cpp
est le nom du préprocesseur C donc il est regrettable qu'il ait été utilisé pour C++ aussi.
il suffit de suivre la convention utilisée par le projet/l'équipe.
l'autre option est .cxx
où le x
est supposé être un + rotated 45°.
Windows, Mac et Linux prennent tous en charge .c++
.
personnellement, je n'ai jamais vu .cc
dans un projet sur lequel j'ai travaillé, mais en toute technicité le compilateur s'en fiche.
qui se souciera est les développeurs travaillant sur votre source, donc ma règle de base est d'aller avec ce que votre équipe est à l'aise avec. Si votre "équipe" est la communauté open source, aller avec quelque chose de très commun, dont .cpp
semble être le favori.
plusieurs personnes disant .cc
ne signifie rien? Il pourrait. C++ a commencé sa vie comme"C avec des Classes".
vrai que .cc
et .cpp
sont aussi des noms de commandes sur la plupart des systèmes Unix (compilateur c et préprocesseur c respectivement).
j'utilise .cpp
exclusivement, mais j'ai commencé sous Windows. .cc
est plus une convention Unix, même si je la vois de moins en moins là. GNU make a des règles pour .cpp
donc, c'est probablement préférable, il fonctionnera par défaut sur les deux fenêtres et tout le reste. D'un autre côté, le C++ moderne n'utilise aucune extension pour les en-têtes, je n'aime vraiment pas ça. Tous mes projets utilisent .h
pour les fichiers d'en-tête, et ils prennent en charge à la fois C et C++ autant que possible via extern "C"
et les tests __cplusplus
.
comme pour la plupart des conventions de style, il n'y a que deux choses qui comptent:
- soyez cohérent dans ce que vous utilisez, dans la mesure du possible.
- ne concevez rien qui dépend d'un choix précis.
ceux-ci peuvent sembler contredire, mais ils ont chacun valeur pour leurs propres raisons.
.C
et .cc
semblent être la norme pour les (quelques) Unix orientée vers les programmes C++ que j'ai vu. J'ai toujours utilisé .cpp
moi-même, car je ne travaille vraiment que sur les fenêtres et c'est la norme depuis une éternité.
je recommande .cpp
personnellement, parce que... il est synonyme de "Plus de C Plus". Il est bien sûr vital que les extensions de fichiers soient des acronymes, mais si cette justification ne s'avère pas suffisamment convaincante, d'autres les choses sont la non-utilisation de la touche shift (qui exclut .C
et .c++
) et l'évitement des métacharges d'expression régulière lorsque c'est possible (qui exclut .c++
-- malheureusement, vous ne pouvez pas vraiment éviter le .
bien sûr.).
cela n'exclut pas .cc
, donc même si cela ne signifie pas vraiment quelque chose (ou le fait?) c'est probablement un bon choix pour le code orienté Linux.
j'ai utilisé .C et .h pour source et en-tête, respectivement. Une bonne chose avec ce choix est que, sur la ligne de commande, son facile à utiliser *.[Ch]
pour sélectionner tous les fichiers de code. Utiliser .C
pourrait être un problème sur les systèmes de fichiers insensibles à la casse, mais si vous avez foo.c
et foo.C
dans le même répertoire, vous méritez ce que vous obtenez de toute façon:)
peu importe laquelle de ces extensions vous utiliserez. Choisissez celui qui vous plaît le plus, juste être cohérent avec le nom. La seule exception que je connaisse avec cette convention d'appellation est que je ne pouvais pas faire WinDDK
(ou est-ce WDK
maintenant?) pour compiler les fichiers .cc
. Sur Linux, bien que ce ne soit pas un problème.
rpc = c plus plus et il est donc mon préféré, qu'est-cc ou cxx?
The .cc extension est nécessaire pour utiliser des règles implicites dans les makefiles. Regardez à travers ces liens pour obtenir une meilleure compréhension des makefiles, mais regardez principalement le second, car il indique clairement l'utilité de la .cc extension:
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
je viens d'apprendre ça.