¿Qué es el formato de archivo CPP?
Los archivos .cpp contienen código fuente escrito en C++, un lenguaje de programación de propósito general creado por Bjarne Stroustrup en Bell Labs a principios de la década de 1980. La extensión .cpp significa «C plus plus» (C más más); convenciones alternativas como .cc y .cxx denotan el mismo tipo de archivo fuente bajo diferentes tradiciones de herramientas.
Contenido de los archivos .cpp
Los archivos con extensión .cpp pueden contener elementos tales como:
- declaraciones de variables y tipos,
- declaraciones y definiciones de funciones,
- declaraciones de clases e implementaciones de funciones miembro,
- directivas de preprocesador (p. ej.,
#include <iostream>,#define), - referencias a bibliotecas del sistema y archivos de cabecera
.ho.hpp, - comentarios para una mejor legibilidad del código (estos se omiten durante la compilación).
¿Es un archivo .cpp un programa?
Los archivos .cpp contienen código fuente de programas escritos en C++, pero para ejecutar dichas aplicaciones, el código fuente debe ser compilado. Un compilador -como g++, clang++ o MSVC- toma el código fuente y lo traduce a código máquina que la computadora puede ejecutar directamente. Solo el resultado compilado puede llamarse programa; el archivo .cpp en sí es solo texto. Un proyecto suele compilar múltiples archivos .cpp y los vincula para producir un ejecutable final.
¿Puedo abrir un archivo .cpp?
Los archivos .cpp no son más que archivos de texto plano y pueden editarse con cualquier editor de texto. Sin embargo, editarlos requiere conocimientos de la sintaxis de C++ para evitar errores que puedan impedir la compilación o hacer que el programa funcione incorrectamente. Por esta razón, es mejor editar archivos .cpp utilizando herramientas dedicadas que ofrecen funciones útiles como:
- numeración automática de líneas,
- resaltado de sintaxis,
- completado de código y sugerencias,
- notificaciones de errores de sintaxis (paréntesis de cierre faltantes, puntos y coma, etc.),
- soporte integrado para compilación y depuración.
Los entornos populares incluyen Microsoft Visual Studio, VS Code y Apple Xcode. El archivo .cpp en sí no contiene información de versión incrustada; el estándar de C++ de destino (desde C++98 hasta C++23) se elige en el momento de la compilación mediante indicadores del compilador.
Seguridad y protección
RIESGO: LOWUn archivo .cpp es texto plano y no puede ejecutarse por sí solo, por lo que abrirlo en un editor es seguro. El riesgo aparece solo cuando se COMPILA y EJECUTA código C++ desconocido: el código fuente de un origen no confiable puede hacer cualquier cosa que un programa pueda hacer una vez construido (eliminar archivos, acceso a la red, instalar malware), y el acceso de bajo nivel de C++ facilita la ocultación de código malicioso o con errores. Lea el código antes de compilarlo, construya código no confiable en un entorno aislado/VM y nunca ejecute un binario compilado en el que no confíe. La extensión de archivo en sí no conlleva ningún exploit; el peligro reside en lo que hace el código tras la compilación.
Detalles del formato
en pocas palabras- Fuente de C++ (extensiones alternativas) - El mismo rol de fuente de C++ también lo desempeñan .cc, .cxx, .c++ y .C (en mayúsculas); .cpp es la convención dominante en Windows y multiplataforma.
Programas que abren archivos CPP
Detalles técnicos
especificación profunda| Tipo MIME | text/x-c++src (también se acepta: text/x-c++ y text/plain) |
| Codificación de archivo | Texto plano - ASCII o UTF-8; se acepta un BOM UTF-8 (EF BB BF) en el desplazamiento 0 pero no es obligatorio |
| Firma de archivo / bytes mágicos | Ninguna - identificado por el contenido: normalmente comienza con comentarios // o /* */, directivas #include o definiciones de clases/funciones |
| Estructura de archivo | Directivas de preprocesador (#include, #define, #if), declaraciones using/namespace, definiciones de clases y funciones, y el punto de entrada main() |
| Requiere compilación | Sí - debe ser compilado por g++, clang++ o MSVC; el archivo .cpp es texto fuente legible por humanos, no un ejecutable |
| Estándares del lenguaje de destino | C++98, C++03, C++11, C++14, C++17, C++20, C++23; el estándar se selecciona mediante un indicador del compilador (p. ej., -std=c++17) y no se almacena dentro del archivo |
| Etapa de preprocesador | Antes de la compilación, el preprocesador de C expande las directivas #include, las macros #define y los bloques de compilación condicional (#if / #endif) |
| Tipos de archivos complementarios | .h y .hpp (declaraciones de cabecera), .cc y .cxx (extensiones de fuente C++ alternativas), .o / .obj (salida de archivo objeto compilado) |
| Salida de compilación | Un archivo objeto (.o en Linux/macOS, .obj en Windows) que el enlazador combina con otros objetos en un ejecutable o biblioteca compartida |
| Tamaño de archivo típico | De unos pocos KB a decenas de KB por archivo fuente; los archivos generados por máquina o con muchas plantillas pueden superar 1 MB |
| Soporte de Unicode / caracteres | Los literales de cadena e identificadores admiten Unicode (UTF-8) a partir de C++11; los prefijos de literales de cadena u8, u y U permiten el control explícito de la codificación |
| Finales de línea | Independiente de la plataforma - LF (Unix/macOS), CRLF (Windows) y CR son aceptados por los principales compiladores |
| Sistemas operativos asociados | Windows, macOS, Linux - y cualquier plataforma con una cadena de herramientas de compilación de C++ compatible |
| Organismo de normalización | ISO/IEC JTC1/SC22/WG21 (el Comité de Estándares de C++); los estándares se publican como revisiones ISO/IEC 14882 en un ciclo de aproximadamente 3 años |
| Convención de nomenclatura de archivos | Normalmente coincide con la clase o módulo que implementa - p. ej., MyClass.cpp emparejado con MyClass.h o MyClass.hpp |
| Significado del nombre de la extensión | Las letras «pp» significan «plus plus» (más más); el mismo contenido fuente de C++ puede usar alternativamente .cc o .cxx por convención de la cadena de herramientas |
| Lanzado | C++ language created 1979-1985 (Bjarne Stroustrup, Bell Labs); first ISO standard C++98 (1998) |
| Última versión | ISO/IEC 14882:2024 (C++23); C++26 in progress |
| Estándar abierto | Sí · libre de regalías |
| Especificación | isocpp.org |
Conversiones de CPP
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos CPP.