Avatar ·

Extensiones de archivos C++: .cc, .cpp, .cxx, .h — ¿cuál es la diferencia y qué elegir?

¡Hola a todos! Acabo de empezar a aprender C++ y escribo programas simples en Visual Studio Code. Noté que cuando creo un nuevo archivo, me ofrecen elegir entre un montón de extensiones: .cpp, .cc, .cxx, y para los archivos de cabecera — .h, .hpp, .hxx. Estoy acostumbrado a usar siempre .cpp y .h, porque así fue en el primer tutorial. Pero recientemente descargué un proyecto open-source en GitHub, y allí todos los archivos tienen la extensión .cc. Intenté renombrarlos a .cpp, pero el compilador dio errores de linking — dice que no puede encontrar algunas funciones. Tuve que revertir el cambio. Ahora estoy confundido: ¿estas extensiones son intercambiables o no? Si lo son, ¿por qué el proyecto con .cc no funciona cuando lo renombro a .cpp? Y si no lo son, ¿qué extensión se considera «correcta» o «estándar»? Y otra pregunta: ¿afecta la extensión a cómo el compilador procesa el código? Por ejemplo, ¿puede confundir archivos C y C++? Mi ejemplo: escribí una clase simple `Cat` en el archivo `Cat.cc` y main en `main.cc`. Todo se compila con g++ main.cc Cat.cc -o app. Pero