Vad är filformatet CPP?
.cpp-filer innehåller källkod skriven i C++, ett generellt programmeringsspråk skapat av Bjarne Stroustrup vid Bell Labs i början av 1980-talet. Filändelsen .cpp står för «C plus plus» - alternativa konventioner som .cc och .cxx betecknar samma typ av källkodsfil under olika verktygstraditioner.
Innehåll i .cpp-filer
Filer med filändelsen .cpp kan innehålla element som:
- variabel- och typdeklarationer,
- funktionsdeklarationer och definitioner,
- klassdeklarationer och implementeringar av medlemsfunktioner,
- preprocessordirektiv (t.ex.
#include <iostream>,#define), - referenser till systembibliotek och
.heller.hppheader-filer, - kommentarer för bättre läsbarhet - dessa utelämnas under kompileringen.
Är en .cpp-fil ett program?
.cpp-filer innehåller källkod skriven i C++, men för att kunna köra sådana applikationer måste källkoden kompileras. En kompilator - som g++, clang++ eller MSVC - tar källkoden och översätter den till maskinkod som datorn kan exekvera direkt. Endast den kompilerade utdatan kan kallas ett program; själva .cpp-filen är bara text. Ett projekt kompilerar vanligtvis flera .cpp-filer och länkar samman dem för att skapa en slutgiltig körbar fil.
Kan jag öppna en .cpp-fil?
.cpp-filer är inget annat än vanliga textfiler och kan redigeras med valfri textredigerare. Att redigera dem kräver dock kunskap om C++-syntax för att undvika fel som kan förhindra kompilering eller få programmet att fungera felaktigt. Av denna anledning görs redigering av .cpp-filer bäst med dedikerade verktyg som erbjuder hjälpsamma funktioner som:
- automatisk radnumrering,
- syntaxmarkering,
- kodkomplettering och tips,
- aviseringar om syntaxfel (saknade avslutande parenteser, semikolon, etc.),
- integrerat stöd för bygge och felsökning.
Populära miljöer inkluderar Microsoft Visual Studio, VS Code och Apple Xcode. Själva .cpp-filen innehåller ingen inbäddad versionsinformation - den avsedda C++-standarden (från C++98 till C++23) väljs vid kompileringstillfället via kompilatorflaggor.
Säkerhet & trygghet
RISK: LOWEn .cpp-fil är klartext och kan inte köras på egen hand, så det är säkert att öppna en i en redigerare. Risken uppstår först när du KOMPILERAR och KÖR okänd C++-kod: källkod från en otillförlitlig källa kan göra allt ett program kan när det väl är byggt (radera filer, nätverksåtkomst, installera skadlig kod), och C++ lågnivååtkomst gör det enkelt att dölja skadlig eller buggig kod. Läs koden innan du kompilerar den, bygg okänd kod i en sandlåda/VM och kör aldrig en kompilerad binärfil som du inte litar på. Själva filändelsen innebär ingen risk - faran ligger i vad koden gör efter kompilering.
Formatdetaljer
i ett nötskal- C++ källkod (alternativa filändelser) - Samma roll för C++-källkod innehas även av .cc, .cxx, .c++ och (versalt) .C; .cpp är den dominerande konventionen för Windows/cross-platform.
Program som öppnar CPP-filer
Tekniska detaljer
djup specifikation| MIME-typ | text/x-c++src (även accepterat: text/x-c++ och text/plain) |
| Filkodning | Klartext - ASCII eller UTF-8; en UTF-8 BOM (EF BB BF) vid offset 0 accepteras men krävs inte |
| Filsignatur / magic bytes | Ingen - identifieras genom innehåll: börjar vanligtvis med // eller /* */ kommentarer, #include-direktiv eller klass-/funktionsdefinitioner |
| Filstruktur | Preprocessordirektiv (#include, #define, #if), using/namespace-deklarationer, klass- och funktionsdefinitioner samt startpunkten main() |
| Kompilering krävs | Ja - måste kompileras av g++, clang++ eller MSVC; .cpp-filen är mänskligt läsbar källkod, inte en körbar fil |
| Målspråksstandarder | C++98, C++03, C++11, C++14, C++17, C++20, C++23; standarden väljs via en kompilatorflagga (t.ex. -std=c++17) och lagras inte inuti filen |
| Preprocessor-steg | Före kompilering expanderar C-preprocessorn #include-direktiv, #define-makron och block för villkorlig kompilering (#if / #endif) |
| Tillhörande filtyper | .h och .hpp (header-deklarationer), .cc och .cxx (alternativa C++-källkodsändelser), .o / .obj (kompilerad objektfil) |
| Kompileringsutdata | En objektfil (.o på Linux/macOS, .obj på Windows) som länkaren kombinerar med andra objekt till en körbar fil eller ett delat bibliotek |
| Typisk filstorlek | Några KB till tiotals KB per källkodsfil; maskingenererade eller tungt mallbaserade filer kan överstiga 1 MB |
| Unicode / teckenstöd | Strängliteraler och identifierare stöder Unicode (UTF-8) från C++11 och framåt; u8, u och U som prefix för strängliteraler tillåter explicit kontroll över kodning |
| Radbrytningar | Plattformsoberoende - LF (Unix/macOS), CRLF (Windows) och CR accepteras alla av de stora kompilatorerna |
| Associerade operativsystem | Windows, macOS, Linux - och alla plattformar med en kompatibel C++-kompilator |
| Standardiseringsorgan | ISO/IEC JTC1/SC22/WG21 (C++-standardkommittén); standarder publiceras som ISO/IEC 14882-revisioner ungefär vart tredje år |
| Namnkonvention för filer | Matchar vanligtvis klassen eller modulen den implementerar - t.ex. MyClass.cpp parat med MyClass.h eller MyClass.hpp |
| Betydelse av ändelsens namn | Bokstäverna «pp» står för «plus plus»; identiskt C++-källkodsinnehåll kan alternativt använda .cc eller .cxx enligt verktygskonvention |
| Släppt | C++ language created 1979-1985 (Bjarne Stroustrup, Bell Labs); first ISO standard C++98 (1998) |
| Senaste version | ISO/IEC 14882:2024 (C++23); C++26 in progress |
| Öppen standard | Ja · royaltyfri |
| Specifikation | isocpp.org |
CPP-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om CPP-filer.