Wat is het CC-bestandsformaat?
Een .cc-bestand is een C++ broncodebestand in platte tekst. Het bevat voor mensen leesbare C++ code, inclusief preprocessor-richtlijnen zoals #include en #define, namespace-declaraties, klassedefinities en functie-inhoud. De extensie .cc is functioneel identiek aan .cpp - beide bevatten C++ broncode - maar .cc is de conventie die de voorkeur heeft bij de GNU toolchain en de C++ Style Guide van Google, terwijl .cpp de standaard is in Windows- en Visual Studio-projecten.
Om een uitvoerbaar programma te produceren, moet een .cc-bestand worden gecompileerd. Op Linux en macOS zijn de typische commando's g++ file.cc -o output of clang++ file.cc -o output. Op Windows accepteren MSVC (cl.exe) en MinGW-w64 ook .cc-bestanden, hoewel .cpp daar uit gewoonte gebruikelijker is.
Het bestand is pure ASCII- of UTF-8-tekst zonder binaire signatuur of magic bytes. Een optionele UTF-8 BOM (EF BB BF) kan voorkomen op offset 0, maar wordt zelden gebruikt en is niet vereist. Bestanden openen doorgaans met commentaarblokken, #include-richtlijnen (bijv. #include <iostream>), en vervolgens klasse- of functiedefinities.
De C++ taalstandaard waarop de code zich richt - C++11, C++17, C++20 of C++23 - wordt tijdens het compileren geselecteerd via een vlag zoals --std=c++23, en is niet ingebed in het .cc-bestand zelf. Bijbehorende declaraties worden meestal bewaard in een gekoppeld .hh of .hpp headerbestand. Compilatie produceert een .o objectbestand (Linux/macOS) of .obj (Windows), dat vervolgens wordt gelinkt naar een definitief uitvoerbaar bestand of bibliotheek.
Beveiliging & veiligheid
RISICO: LOWEen .cc-bestand is platte tekst en kan niet uit zichzelf draaien, dus het openen ervan in een editor is veilig. Het risico ontstaat pas wanneer u onbekende C++ code COMPILEERT en UITVOERT: broncode van een onbetrouwbare bron kan alles doen wat een programma kan zodra het gebouwd is (bestanden verwijderen, netwerktoegang, malware installeren), en de low-level aard van C++ maakt kwaadaardige of foutieve code gemakkelijk te verbergen. Lees de code voordat u deze compileert, bouw onbetrouwbare code in een sandbox/VM en voer nooit een gecompileerd binair bestand uit dat u niet vertrouwt. De extensie zelf bevat geen exploit - het gevaar zit in wat de code doet na compilatie.
Formaatdetails
in een notendop- Cult3D Designer scene (verouderd) - Cycore's Cult3D gebruikte .cc als een geëxporteerde interactieve 3D-scène; de toolchain is allang stopgezet en de C++ broncode-betekenis overheerst tegenwoordig.
- GNU/Unix C++ conventie vs .cpp - Zowel .cc als .cpp duiden op C++ broncode; .cc heeft de voorkeur bij GNU- en Google-stijlgidsen, .cpp bij Windows/Visual Studio - dezelfde taal, andere conventie.
Programma's die CC-bestanden openen
Technische details
diepe specificaties| MIME-type | text/x-c++src (ook geaccepteerd: text/x-c++, text/plain) |
| Bestandscodering | Platte tekst - ASCII of UTF-8; optionele UTF-8 BOM (EF BB BF) op offset 0 |
| Binaire signatuur (magic bytes) | Geen - plat tekstbestand zonder vaste bytevolgorde; geïdentificeerd door extensie of inhoudspatronen |
| Typische bestandsgrootte | Enkele KB tot tientallen KB per bronbestand; grote codebases kunnen individuele bestanden hebben van honderden KB |
| Regeleinden | LF (Unix/Linux/macOS conventie) of CRLF (Windows) |
| Compilatie vereist | Ja - een .cc-bestand is alleen broncode; moet worden gecompileerd met g++, clang++ of MSVC voordat het kan worden uitgevoerd |
| Veelvoorkomende compilers | GCC (g++), Clang (clang++), MSVC (cl.exe), MinGW-w64 |
| C++ standaarddoelen | C++98 tot en met C++23; standaard geselecteerd door compiler-vlag (bijv. -std=c++17 of /std:c++20), niet opgeslagen in het bestand |
| Extensieconventie | Voorkeur van GNU toolchain en Google C++ Style Guide; .cpp is de Windows / Visual Studio conventie voor identieke inhoud |
| Preprocessor-richtlijnen | #include, #define, #ifdef/#ifndef, #pragma en andere C-preprocessor-richtlijnen verschijnen meestal bovenaan het bestand |
| Bijbehorende headerbestanden | Gekoppeld aan .hh of .hpp headers; het .cc implementatiebestand haalt declaraties binnen via #include |
| Gecompileerde uitvoer | Gecompileerd naar een .o objectbestand (Linux/macOS) of .obj (Windows); vervolgens gelinkt naar een uitvoerbaar bestand of statische/gedeelde bibliotheek |
| Ondersteunde taalfuncties | Classes, templates, exceptions, STL containers, RAII, lambda-expressies, constexpr en concepts (C++20+) |
| Build-systeem integratie | Vermeld als bron in Makefile, CMakeLists.txt (CMake), BUILD (Bazel) of meson.build bestanden |
| Uitwisselbaarheid met .cpp | .cc en .cpp zijn functioneel identieke C++ bronextensies; de meeste compilers accepteren beide; de keuze is puur stilistisch |
| Uitgebracht | 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) |
| Laatste versie | ISO/IEC 14882:2023 (C++23) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.iso.org |
CC conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over CC-bestanden.