Che cos'è il formato di file CC?
Un file .cc è un file di codice sorgente C++ in testo semplice. Contiene codice C++ leggibile dall'uomo, incluse direttive del preprocessore come #include e #define, dichiarazioni di namespace, definizioni di classi e corpi di funzioni. L'estensione .cc è funzionalmente identica a .cpp - entrambi contengono codice sorgente C++ - ma .cc è la convenzione preferita dalla toolchain GNU e dalla Google C++ Style Guide, mentre .cpp è lo standard nei progetti Windows e Visual Studio.
Per produrre un programma eseguibile, un file .cc deve essere compilato. Su Linux e macOS, i comandi tipici sono g++ file.cc -o output o clang++ file.cc -o output. Su Windows, MSVC (cl.exe) e MinGW-w64 accettano anche file .cc, sebbene .cpp sia più comune per convenzione.
Il file è puro testo ASCII o UTF-8 senza firma binaria o magic bytes. Un BOM UTF-8 opzionale (EF BB BF) può apparire all'offset 0 ma è raramente usato e non richiesto. I file si aprono tipicamente con blocchi di commento, direttive #include (es. #include <iostream>) e quindi definizioni di classi o funzioni.
Lo standard del linguaggio C++ target del codice - C++11, C++17, C++20 o C++23 - viene selezionato al momento della compilazione tramite un flag come --std=c++23, non è incorporato nel file .cc stesso. Le dichiarazioni associate sono solitamente conservate in un file header accoppiato .hh o .hpp. La compilazione produce un file oggetto .o (Linux/macOS) o .obj (Windows), che viene poi collegato in un eseguibile finale o in una libreria.
Sicurezza e incolumità
RISCHIO: LOWUn file .cc è 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: un sorgente da un'origine non fidata può fare qualsiasi cosa un programma sia in grado di fare una volta compilato (eliminare file, accedere alla rete, installare malware), e la natura di basso livello del C++ rende facile nascondere codice malevolo o buggato. Leggi il codice prima di compilarlo, builda il codice non fidato in una sandbox/VM e non eseguire mai un binario compilato di cui non ti fidi. L'estensione in sé non comporta exploit - il pericolo risiede in ciò che il codice fa dopo la compilazione.
Dettagli del formato
in sintesi- Scena Cult3D Designer (legacy) - Cult3D di Cycore usava .cc come scena 3D interattiva esportata; la toolchain è dismessa da tempo e il significato di sorgente C++ domina oggi.
- Convenzione GNU/Unix C++ vs .cpp - Sia .cc che .cpp indicano sorgenti C++; .cc è preferito dalle guide di stile GNU e Google, .cpp da Windows/Visual Studio - stesso linguaggio, diversa convenzione.
Programmi che aprono file CC
Dettagli tecnici
specifiche approfondite| Tipo MIME | text/x-c++src (accettati anche: text/x-c++, text/plain) |
| Codifica file | Testo semplice - ASCII o UTF-8; BOM UTF-8 opzionale (EF BB BF) all'offset 0 |
| Firma binaria (magic bytes) | Nessuna - file di testo semplice senza sequenza di byte fissa; identificato dall'estensione o dai pattern del contenuto |
| Dimensione tipica del file | Da pochi KB a decine di KB per file sorgente; codebase ampie possono avere singoli file che raggiungono centinaia di KB |
| Fine riga | LF (convenzione Unix/Linux/macOS) o CRLF (Windows) |
| Compilazione richiesta | Sì - un file .cc è solo sorgente; deve essere compilato con g++, clang++ o MSVC prima di poter essere eseguito |
| Compilatori comuni | GCC (g++), Clang (clang++), MSVC (cl.exe), MinGW-w64 |
| Standard C++ target | Da C++98 a C++23; standard selezionato tramite flag del compilatore (es. -std=c++17 o /std:c++20), non memorizzato nel file |
| Convenzione estensione | Preferita dalla toolchain GNU e dalla Google C++ Style Guide; .cpp è la convenzione Windows / Visual Studio per contenuti identici |
| Direttive del preprocessore | #include, #define, #ifdef/#ifndef, #pragma e altre direttive del preprocessore C appaiono tipicamente all'inizio del file |
| File header associati | Accoppiato con header .hh o .hpp; il file di implementazione .cc richiama le dichiarazioni tramite #include |
| Output compilato | Compilato in un file oggetto .o (Linux/macOS) o .obj (Windows); successivamente collegato in un eseguibile o in una libreria statica/condivisa |
| Funzionalità del linguaggio supportate | Classi, template, eccezioni, contenitori STL, RAII, espressioni lambda, constexpr e concetti (C++20+) |
| Integrazione build system | Elencato come sorgente in file Makefile, CMakeLists.txt (CMake), BUILD (Bazel) o meson.build |
| Intercambiabilità con .cpp | .cc e .cpp sono estensioni di sorgenti C++ funzionalmente identiche; la maggior parte dei compilatori accetta entrambe; la scelta è puramente stilistica |
| Rilasciato | C++ created 1983 (Bell Labs); standardized ISO C++98 (1998); latest C++23. The .cc extension is a long-standing C++ convention (notably GNU and Google style) |
| Ultima versione | ISO/IEC 14882:2023 (C++23) |
| Standard aperto | Sì · royalty-free |
| Specifica | www.iso.org |
Conversioni CC
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file CC.