Che cos'è il formato di file CPP?
I file .cpp contengono codice sorgente scritto in C++, un linguaggio di programmazione general-purpose creato da Bjarne Stroustrup ai Bell Labs nei primi anni '80. L'estensione .cpp sta per «C plus plus» - convenzioni alternative come .cc e .cxx indicano lo stesso tipo di file sorgente secondo diverse tradizioni di toolchain.
Contenuto dei file .cpp
I file con estensione .cpp possono contenere elementi quali:
- dichiarazioni di variabili e tipi,
- dichiarazioni e definizioni di funzioni,
- dichiarazioni di classi e implementazioni di funzioni membro,
- direttive del preprocessore (es.
#include <iostream>,#define), - riferimenti a librerie di sistema e file header
.ho.hpp, - commenti per una migliore leggibilità del codice - questi vengono omessi durante la compilazione.
Un file .cpp è un programma?
I file .cpp contengono codice sorgente di programmi scritti in C++, ma per eseguire tali applicazioni il codice sorgente deve essere compilato. Un compilatore - come g++, clang++ o MSVC - prende il codice sorgente e lo traduce in codice macchina che il computer può eseguire direttamente. Solo l'output compilato può essere chiamato programma; il file .cpp in sé è solo testo. Un progetto tipicamente compila più file .cpp e li collega insieme per produrre un eseguibile finale.
Posso aprire un file .cpp?
I file .cpp non sono altro che file di testo semplice e possono essere modificati utilizzando qualsiasi editor di testo. Tuttavia, la loro modifica richiede la conoscenza della sintassi C++ per evitare errori che potrebbero impedire la compilazione o causare un funzionamento errato del programma. Per questo motivo, la modifica dei file .cpp viene eseguita al meglio utilizzando strumenti dedicati che offrono funzionalità utili come:
- numerazione automatica delle righe,
- evidenziazione della sintassi,
- completamento del codice e suggerimenti,
- notifiche di errori di sintassi (parentesi chiuse mancanti, punti e virgola, ecc.),
- supporto integrato per build e debugger.
Gli ambienti popolari includono Microsoft Visual Studio, VS Code e Apple Xcode. Il file .cpp stesso non contiene informazioni sulla versione incorporate - lo standard C++ di destinazione (da C++98 a C++23) viene scelto al momento della compilazione tramite i flag del compilatore.
Sicurezza e incolumità
RISCHIO: LOWUn file .cpp è testo semplice e non può essere eseguito da solo, quindi aprirne uno in un editor è sicuro. Il rischio appare solo quando si COMPILA ed ESEGUE codice C++ sconosciuto: il sorgente proveniente da un'origine non attendibile può fare tutto ciò che un programma può fare una volta compilato (eliminare file, accesso alla rete, installare malware), e l'accesso a basso livello del C++ rende facile nascondere codice dannoso o buggato. Leggi il codice prima di compilarlo, compila il codice non attendibile in una sandbox/VM e non eseguire mai un binario compilato di cui non ti fidi. L'estensione del file in sé non comporta exploit - il pericolo risiede in ciò che il codice fa dopo la compilazione.
Dettagli del formato
in sintesi- Sorgente C++ (estensioni alternative) - Lo stesso ruolo di sorgente C++ è svolto anche da .cc, .cxx, .c++ e (maiuscolo) .C; .cpp è la convenzione dominante su Windows/cross-platform.
Programmi che aprono file CPP
Dettagli tecnici
specifiche approfondite| Tipo MIME | text/x-c++src (accettati anche: text/x-c++ e text/plain) |
| Codifica del file | Testo semplice - ASCII o UTF-8; un BOM UTF-8 (EF BB BF) all'offset 0 è accettato ma non richiesto |
| Firma del file / magic bytes | Nessuna - identificato dal contenuto: tipicamente inizia con commenti // o /* */, direttive #include o definizioni di classi/funzioni |
| Struttura del file | Direttive del preprocessore (#include, #define, #if), dichiarazioni using/namespace, definizioni di classi e funzioni, e il punto di ingresso main() |
| Compilazione richiesta | Sì - deve essere compilato da g++, clang++ o MSVC; il file .cpp è testo sorgente leggibile dall'uomo, non un eseguibile |
| Standard linguistici di destinazione | C++98, C++03, C++11, C++14, C++17, C++20, C++23; lo standard viene selezionato tramite un flag del compilatore (es. -std=c++17) e non è memorizzato all'interno del file |
| Fase di preprocessore | Prima della compilazione, il preprocessore C espande le direttive #include, le macro #define e i blocchi di compilazione condizionale (#if / #endif) |
| Tipi di file correlati | .h e .hpp (dichiarazioni header), .cc e .cxx (estensioni sorgente C++ alternative), .o / .obj (output file oggetto compilato) |
| Output della compilazione | Un file oggetto (.o su Linux/macOS, .obj su Windows) che il linker combina con altri oggetti in un eseguibile o in una libreria condivisa |
| Dimensione tipica del file | Da pochi KB a decine di KB per file sorgente; i file generati automaticamente o con molti template possono superare 1 MB |
| Supporto Unicode / caratteri | I letterali stringa e gli identificatori supportano Unicode (UTF-8) dal C++11 in poi; i prefissi letterali u8, u e U consentono il controllo esplicito della codifica |
| Finali di riga | Indipendenti dalla piattaforma - LF (Unix/macOS), CRLF (Windows) e CR sono tutti accettati dai principali compilatori |
| Sistemi operativi associati | Windows, macOS, Linux - e qualsiasi piattaforma con una toolchain di compilazione C++ conforme |
| Organismo di standardizzazione | ISO/IEC JTC1/SC22/WG21 (il Comitato Standard C++); gli standard sono pubblicati come revisioni ISO/IEC 14882 approssimativamente ogni 3 anni |
| Convenzione di denominazione dei file | In genere corrisponde alla classe o al modulo che implementa - es. MyClass.cpp abbinato a MyClass.h o MyClass.hpp |
| Significato del nome dell'estensione | Le lettere «pp» stanno per «plus plus»; lo stesso contenuto sorgente C++ può alternativamente utilizzare .cc o .cxx per convenzione della toolchain |
| Rilasciato | C++ language created 1979-1985 (Bjarne Stroustrup, Bell Labs); first ISO standard C++98 (1998) |
| Ultima versione | ISO/IEC 14882:2024 (C++23); C++26 in progress |
| Standard aperto | Sì · royalty-free |
| Specifica | isocpp.org |
Conversioni CPP
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file CPP.