c++ filenames

Código de C++ extensión de archivo?.cc vs.cpp



filenames (16)

Al final del día, no importa porque los compiladores de C ++ pueden manejar los archivos en cualquier formato. Si es un problema real dentro de tu equipo, lanza una moneda y continúa con el trabajo real.

He visto el código C ++ guardado como archivos .cc y .cpp . ¿Hay diferencia entre los dos?

La guía de estilo de Google parece sugerir .cc , pero no proporciona ninguna explicación.

Me interesan principalmente los programas en sistemas Linux.


Como con la mayoría de las convenciones de estilo, solo hay dos cosas que importan:

  1. Sea consistente en lo que usa, siempre que sea posible.
  2. No diseñe nada que dependa de que se use una opción específica.

Pueden parecer contradictorias, pero cada una tiene valor por sus propias razones.


GNU GCC reconoce todo lo siguiente como archivos C ++ y utilizará la compilación de C ++ independientemente de si lo invoca a través de gcc o g ++: .C , .cc , .cpp , .CPP , .c++ , .cp o .cxx .

Tenga en cuenta que .C : el caso es importante en GCC, .c es un archivo C, mientras que .C es un archivo C ++ (si deja que el compilador decida qué está compilando).

GCC también admite otros sufijos para indicar un manejo especial, por ejemplo, un archivo .ii se compilará como C ++, pero no se procesará previamente (destinado a código preprocesado por separado). Todos los sufijos reconocidos se detallan en gcc.gnu.org


He usado .C y .h para fuente y encabezado, respectivamente. Una cosa buena con esa elección es que, en la línea de comandos, es fácil de usar *.[Ch] para seleccionar todos los archivos de código. El uso de .C puede ser un problema en sistemas de archivos que no distinguen entre mayúsculas y minúsculas, pero si tiene foo.c y foo.C en el mismo directorio, merece lo que obtiene de todos modos :)



La otra opción es .cxx donde se supone que la x es un giro positivo de 45 °.

Windows, Mac y Linux son compatibles con .c++ así que deberíamos usarlo.


No importa cuál de esas extensiones usarías. Elige la que más te guste, solo sé coherente con los nombres. La única excepción que conozco con esta convención de nombres es que no pude hacer WinDDK (¿o es WDK ahora?) Para compilar archivos .cc . En Linux, aunque eso no es un problema.


Otras extensiones de archivo utilizadas incluyen .cxx y .C (mayúscula C). Creo que Bjarne Stroustrup usó .C originalmente. .cpp es el nombre del preprocesador de C, por lo que es desafortunado que también se usó para C ++.


Personalmente uso la extensión .cc para los archivos de implementación, .hh para encabezados y .inl para inline / templates.

Como se dijo antes, es principalmente una cuestión de gusto.

Por lo que he visto , .cc parece ser más " orientado a proyectos de código abierto ", como se recomienda en algunos grandes estilos de codificación de software de código abierto, mientras que. cpp parece ser más windowish.

--- EDITAR

Como se mencionó, esto es "de lo que he visto" , puede ser incorrecto. Es solo que todos los proyectos de Windows en los que he trabajado usaban .cpp , y muchos proyectos de código abierto (que son principalmente sobre Me gusta de Unix) usan .cc .

Ejemplos de estilos de codificación usando .cc :


Personalmente, nunca he visto .cc en ningún proyecto en el que he trabajado, pero en todos los aspectos técnicos, al compilador no le importará.

A quién le importará es a los desarrolladores que trabajan en su fuente, por lo que mi regla de oro es ir con lo que su equipo se sienta cómodo. Si su "equipo" es la comunidad de código abierto, vaya con algo muy común, de los cuales .cpp parece ser el favorito.


Simplemente siga la convención utilizada por proyecto / equipo.


Un gran consejo sobre qué usar para el makefile y otras herramientas, considerando las herramientas que no son de compilación y decidir qué extensión usar es un excelente enfoque para ayudar a encontrar una respuesta que funcione para usted.

Solo quería agregar lo siguiente para ayudar con la información de .cc vs .cpp que encontré. Las siguientes son extensiones desglosadas por diferentes entornos (del libro "C ++ Primer Plus"):

Unix utiliza: .C , .cc , .cxx , .c

GNU C ++ utiliza: .C , .cc , .cpp , .cpp , .c++

Digital Mars utiliza: .cpp , .cpp

Borland C ++ utiliza: .cpp

Watcom utiliza: .cpp

Microsoft Visual C ++ utiliza: .cpp , .cpp , .cc

Metrowerks CodeWarrior utiliza: .cpp , .cp , .cc , .cxx , .c++

Los diferentes entornos soportan diferentes extensiones. Yo también estaba buscando responder esta pregunta y encontré esta publicación. Basándome en esta publicación, creo que podría ir con .hpp y .cpp para facilitar el reconocimiento entre plataformas y herramientas.


Varias personas diciendo .cc no significa nada? Que podría. C ++ comenzó su vida como "C con clases".

Es cierto que .cc y .cpp también son nombres de comandos en la mayoría de los sistemas Unix (compilador c y preprocesador c respectivamente).

Uso .cpp exclusivamente, pero empecé en Windows. .cc es más una convención de Unix, aunque cada vez la veo menos. GNU make tiene reglas para .cpp por lo que probablemente se prefiera, funcionará de manera predeterminada tanto en Windows como en todo lo demás. Por otro lado, el C ++ moderno no usa ninguna extensión para los encabezados, realmente no me gusta eso. Todos mis proyectos usan .h para los archivos de encabezado, y admiten tanto C como C ++ tanto como sea posible a través de una extern "C" y la prueba de __cplusplus .


cpp = c plus plus y, por lo tanto, mi preferido, ¿qué significa cc o cxx?


.C y .cc parecen ser estándar para los (pocos) programas C ++ orientados a Unix que he visto. Siempre he usado .cpp , ya que solo trabajo en Windows y ese ha sido el estándar desde siempre.

Recomiendo .cpp personalmente, porque ... significa "C Plus Plus". Por supuesto, es de vital importancia que las extensiones de archivo sean acrónimos, pero si esta razón no es suficientemente convincente, otras cosas importantes son el no uso de la tecla de mayúsculas (que descarta .C y .c++ ) y evitar metacaracteres de expresiones regulares cuando sea posible (que descarta .c++ - desafortunadamente no puedes evitar el .por supuesto.).

Esto no descarta .cc , por lo que, aunque en realidad no significa nada (¿o sí?), Probablemente sea una buena opción para el código orientado a Linux.


.cpp es la extensión recomendada para C ++, que yo sepa. Algunas personas incluso recomiendan usar .hpp para los .hpp de C ++, solo para diferenciarse de C.

Aunque al compilador no le importa lo que haces, es una preferencia personal.