Hvad er CPP-filformatet?
.cpp-filer indeholder kildekode skrevet i C++, et programmeringssprog til generelle formål skabt af Bjarne Stroustrup hos Bell Labs i starten af 1980'erne. Filtypen .cpp står for „C plus plus“ - alternative konventioner såsom .cc og .cxx betegner den samme type kildekodefil under forskellige toolchain-traditioner.
Indhold af .cpp-filer
Filer med en .cpp-filtype kan indeholde elementer som:
- variabel- og typeerklæringer,
- funktionserklæringer og -definitioner,
- klasseerklæringer og implementeringer af medlemsfunktioner,
- præprocessor-direktiver (f.eks.
#include <iostream>,#define), - referencer til systembiblioteker og
.heller.hppheader-filer, - kommentarer for bedre læsbarhed - disse udelades under compilering.
Er en .cpp-fil et program?
.cpp-filer indeholder programkildekode skrevet i C++, men for at køre sådanne applikationer skal kildekoden compiles. En compiler - såsom g++, clang++ eller MSVC - tager kildekoden og oversætter den til maskinkode, som computeren kan eksekvere direkte. Kun det compilerede output kan kaldes et program; selve .cpp-filen er blot tekst. Et projekt compilerer typisk flere .cpp-filer og linker dem sammen for at producere en endelig eksekverbar fil.
Kan jeg åbne en .cpp-fil?
.cpp-filer er intet andet end almindelige tekstfiler og kan redigeres med enhver teksteditor. Redigering af dem kræver dog kendskab til C++-syntaks for at undgå fejl, der kan forhindre compilering eller få programmet til at køre forkert. Af denne grund gøres redigering af .cpp-filer bedst ved hjælp af dedikerede værktøjer, der tilbyder nyttige funktioner såsom:
- automatisk linjenummerering,
- syntaksfremhævning,
- kodefuldførelse og hints,
- meddelelser om syntaksfejl (manglende slutparenteser, semikolon osv.),
- integreret build- og debugger-understøttelse.
Populære miljøer inkluderer Microsoft Visual Studio, VS Code og Apple Xcode. Selve .cpp-filen indeholder ingen indlejret versionsinformation - den målrettede C++-standard (fra C++98 til C++23) vælges ved compilering via compiler-flags.
Sikkerhed og tryghed
RISIKO: LOWEn .cpp-fil er almindelig tekst og kan ikke køre af sig selv, så det er sikkert at åbne en i en editor. Risikoen opstår kun, når du COMPILERER og KØRER ukendt C++-kode: kildekode fra en upålidelig kilde kan gøre alt, hvad et program kan, når det først er bygget (slette filer, netværksadgang, installere malware), og C++'s adgang på lavt niveau gør det nemt at skjule ondsindet eller fejlbehæftet kode. Læs koden før du compilerer den, byg upålidelig kode i en sandbox/VM, og kør aldrig en compileret binær fil, du ikke stoler på. Selve filtypen indeholder ingen exploit - faren ligger i, hvad koden gør efter compilering.
Formatdetaljer
kort fortalt- C++ kildekode (alternative filtyper) - Den samme C++-kildekoderolle varetages også af .cc, .cxx, .c++ og (stort) .C; .cpp er den dominerende konvention på Windows og på tværs af platforme.
Programmer der åbner CPP-filer
Tekniske detaljer
dyb specifikation| MIME-type | text/x-c++src (også accepteret: text/x-c++ og text/plain) |
| Filkodning | Almindelig tekst - ASCII eller UTF-8; en UTF-8 BOM (EF BB BF) ved offset 0 accepteres, men er ikke påkrævet |
| Filsignatur / magic bytes | Ingen - identificeres ved indhold: starter typisk med // eller /* */ kommentarer, #include-direktiver eller klasse-/funktionsdefinitioner |
| Filstruktur | Præprocessor-direktiver (#include, #define, #if), using/namespace-erklæringer, klasse- og funktionsdefinitioner samt main() indgangspunktet |
| Compilering påkrævet | Ja - skal compiles af g++, clang++ eller MSVC; .cpp-filen er menneskelæsbar kildetekst, ikke en eksekverbar fil |
| Målsprogsstandarder | C++98, C++03, C++11, C++14, C++17, C++20, C++23; standarden vælges via et compiler-flag (f.eks. -std=c++17) og gemmes ikke i filen |
| Præprocessor-stadie | Før compilering udvider C-præprocessoren #include-direktiver, #define-makroer og blokke til betinget compilering (#if / #endif) |
| Ledsagende filtyper | .h og .hpp (header-erklæringer), .cc og .cxx (alternative C++-kildekodefiltyper), .o / .obj (compileret objektfil-output) |
| Compilerings-output | En objektfil (.o på Linux/macOS, .obj på Windows), som linkeren kombinerer med andre objekter til en eksekverbar fil eller et delt bibliotek |
| Typisk filstørrelse | Fra få KB til titusindvis af KB pr. kildekodefil; maskingenererede filer eller filer med mange templates kan overstige 1 MB |
| Unicode / tegnunderstøttelse | String-literals og identifikatorer understøtter Unicode (UTF-8) fra C++11 og frem; u8, u og U præfikser tillader eksplicit kontrol over kodning |
| Linjeskift | Platformsuafhængig - LF (Unix/macOS), CRLF (Windows) og CR accepteres alle af de store compilere |
| Associerede operativsystemer | Windows, macOS, Linux - og enhver platform med en kompatibel C++-compiler |
| Standardiseringsorgan | ISO/IEC JTC1/SC22/WG21 (C++-standardkomitéen); standarder udgives som ISO/IEC 14882-revisioner i cyklusser på ca. 3 år |
| Navngivningskonvention | Matcher typisk den klasse eller det modul, den implementerer - f.eks. MyClass.cpp parret med MyClass.h eller MyClass.hpp |
| Betydning af filtypenavn | Bogstaverne „pp“ står for „plus plus“; identisk C++-kildeindhold kan alternativt bruge .cc eller .cxx afhængigt af toolchain-konvention |
| Udgivet | C++ language created 1979-1985 (Bjarne Stroustrup, Bell Labs); first ISO standard C++98 (1998) |
| Seneste version | ISO/IEC 14882:2024 (C++23); C++26 in progress |
| Åben standard | Ja · royaltyfri |
| Specifikation | isocpp.org |
CPP-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om CPP-filer.