Doublons Possibles:
*.h ou *.php pour vos définitions de classe
Corriger le code C++ extension de fichier? .cc vs .rpcJ'ai l'habitude de penser qu'il a utilisé pour être que:
.h
des fichiers sont des fichiers d'en-tête pour le C et le C++, et ne contiennent que des déclarations..c
fichiers de code source C..cpp
sont les fichiers de code source C++ (qui peut également être C code source).ensuite, les fichiers comme
.hpp
,.cc
, et.cxx
sont venus le long, et je suis totalement confus... quelle est la différence(s) entre ces deux? Lorsque vous utilisez le "nouveau"?
- Extension de fichier pour le code C++ de corriger ? .cc vs .cpp (5 réponses )
- *.h ou *.hpp pour vos définitions de classe (5 réponses )
Réponses
Trop de publicités?Historiquement, les premières extensions utilisés pour le C++ ont été .c
et .h
, exactement comme pour C. Cela a causé des problèmes pratiques, en particulier l' .c
qui ne permettent pas de construire des systèmes de différencier facilement les C++ et C fichiers.
Unix, C++ a été développé, est sensible à la casse des systèmes de fichiers. Si certains ont utilisé .C
pour les fichiers C++. D'autres utilisés .c++
, .cc
et .cxx
. .C
et .c++
le problème est qu'ils ne sont pas disponibles sur d'autres systèmes de fichiers et leur utilisation a rapidement chuté. DOS et Windows compilateurs C++ avaient tendance à utiliser .cpp
, et certains d'entre eux font le choix difficile, si pas impossible, de les configurer. La portabilité de la contrepartie qui a été le choix le plus commun, même en dehors de MS-Windows.
Les en-têtes ont utilisé la correspondante .H
, .h++
, .hh
, .hxx
et .hpp
. Mais à la différence des principaux fichiers, .h
reste à ce jour un choix populaire pour le C++, même avec l'inconvénient qu'elle ne permet pas de savoir si l'en-tête peut être inclus dans C contexte ou non. Des en-têtes Standard maintenant n'ont pas d'extension.
En outre, certains utilisent des .ii
, .ixx
, .ipp
, .inl
pour les en-têtes de fournir inline définitions et .txx
, .tpp
et .tpl
pour le modèle de définitions. Ceux-ci sont inclus dans les en-têtes de la définition, ou manuellement dans les contextes où ils sont nécessaires.
Compilateurs et des outils, généralement, ne se soucient pas de ce que les extensions sont utilisées, mais en utilisant une extension qu'ils associent avec le C++ empêche la nécessité de suivre comment les configurer de sorte qu'ils correctement reconnaître la langue utilisée.
Ces extensions ne sont pas vraiment nouvelles, ils sont vieux. :-)
Quand le C++, il y a certaines personnes voulaient avoir un .c++ extension pour les fichiers source, mais cela ne fonctionne pas sur la plupart des systèmes de fichiers. Donc, ils ont essayé quelque chose de proche de ce que, comme .cxx, ou .rpc à la place.
D'autres ont pensé sur le nom de la langue, et "incrémentation" .c, pour obtenir .cc ou même .C dans certains cas. Ne le voyez pas sur que beaucoup.
Certains sont d'avis que si la source est .rpc, les en-têtes doivent être .php de match. Un succès modéré.
Ça n'a vraiment pas d'importance.
Si vous alimentez un compilateur c ++ en .c, il compilera en cpp, .cc / .cxx est juste une alternative à .cpp utilisée par certains compilateurs.
.hpp est une tentative pour distinguer les fichiers d'en-tête où il existe des différences significatives entre c et c ++. Une utilisation courante est que le fichier .hpp ait les wrappers ou les espaces de noms nécessaires pour cpp, puis inclue le .h afin d'exposer la bibliothèque ac à c et c ++.
Parle .php extension, que je trouve très utile quand les gens sont censés savoir que ce fichier d'en-tête contient C++ un pas de C, comme l'utilisation d'espaces de noms ou d'un modèle, etc, en ce moment ils voir les fichiers, donc ils ne seront pas essayer de l'alimenter pour un Ccompilateur! Et j'aime aussi le nom d'en-tête des fichiers qui contiennent non seulement des déclarations, mais des implémentations ainsi, que .php les fichiers. comme les fichiers d'en-tête, y compris des classes template. Même si ce n'est que mon avis et bien sûr, il n'est pas censé être de droite! :)