Hva er CPP-filformatet?
.cpp-filer inneholder kildekode skrevet i C++, et programmeringsspråk for generelle formål skapt av Bjarne Stroustrup ved Bell Labs tidlig på 1980-tallet. Filendelsen .cpp står for «C plus plus» - alternative konvensjoner som .cc og .cxx betegner samme type kildekodefil under ulike tradisjoner for verktøykjeder.
Innholdet i .cpp-filer
Filer med filendelsen .cpp kan inneholde elementer som:
- variabel- og typedefinisjoner,
- funksjonsdeklarasjoner og -definisjoner,
- klassedeklarasjoner og implementeringer av medlemsfunksjoner,
- preprosessor-direktiver (f.eks.
#include <iostream>,#define), - referanser til systembiblioteker og
.heller.hppheader-filer, - kommentarer for bedre kodelesbarhet - disse utelates under kompilering.
Er en .cpp-fil et program?
.cpp-filer inneholder kildekode skrevet i C++, men for å kjøre slike applikasjoner må kildekoden kompileres. En kompilator - som g++, clang++ eller MSVC - tar kildekoden og oversetter den til maskinkode som datamaskinen kan utføre direkte. Bare det kompilerte resultatet kan kalles et program; selve .cpp-filen er bare tekst. Et prosjekt kompilerer vanligvis flere .cpp-filer og lenker dem sammen for å produsere en endelig kjørbar fil.
Kan jeg åpne en .cpp-fil?
.cpp-filer er ingenting annet enn rene tekstfiler og kan redigeres med hvilket som helst tekstredigeringsprogram. Redigering krever imidlertid kunnskap om C++-syntaks for å unngå feil som kan forhindre kompilering eller føre til at programmet kjører feil. Av denne grunn gjøres redigering av .cpp-filer best ved hjelp av dedikerte verktøy som tilbyr nyttige funksjoner som:
- automatisk linjenummerering,
- syntaksutheving,
- kodefullføring og hint,
- varsler om syntaksfeil (manglende parenteser, semikolon osv.),
- integrert støtte for bygging og feilsøking.
Populære miljøer inkluderer Microsoft Visual Studio, VS Code og Apple Xcode. Selve .cpp-filen inneholder ingen innebygd versjonsinformasjon - den ønskede C++-standarden (fra C++98 til C++23) velges ved kompilering via kompilatorflagg.
Sikkerhet og trygghet
RISIKO: LOWEn .cpp-fil er klartekst og kan ikke kjøre av seg selv, så det er trygt å åpne en i et redigeringsprogram. Risikoen oppstår først når du KOMPILERER og KJØRER ukjent C++-kode: kildekode fra en utrygg kilde kan gjøre alt et program kan når det først er bygget (slette filer, nettverkstilgang, installere skadevare), og C++ sin lavnivåtilgang gjør det lett å skjule ondsinnet eller feilaktig kode. Les koden før du kompilerer den, bygg ukjent kode i en sandkasse/VM, og kjør aldri en kompilert binærfil du ikke stoler på. Selve filendelsen inneholder ingen sårbarhet - faren ligger i hva koden gjør etter kompilering.
Formatdetaljer
i et nøtteskall- C++ kildekode (alternative filendelser) - Samme C++-kildekoderolle innehas også av .cc, .cxx, .c++ og (stor bokstav) .C; .cpp er den dominerende konvensjonen for Windows/kryssplattform.
Programmer som åpner CPP-filer
Tekniske detaljer
dyp spesifikasjon| MIME-type | text/x-c++src (også akseptert: text/x-c++ og text/plain) |
| Filkoding | Klartekst - ASCII eller UTF-8; en UTF-8 BOM (EF BB BF) ved posisjon 0 er akseptert, men ikke påkrevd |
| Filsignatur / magic bytes | Ingen - identifiseres ved innhold: åpner vanligvis med // eller /* */ kommentarer, #include-direktiver eller klasse-/funksjonsdefinisjoner |
| Filstruktur | Preprosessor-direktiver (#include, #define, #if), using/navnerom-deklarasjoner, klasse- og funksjonsdefinisjoner, og main()-startpunktet |
| Kompilering påkrevd | Ja - må kompileres av g++, clang++ eller MSVC; .cpp-filen er menneskelesbar kildetekst, ikke en kjørbar fil |
| Målspråkstandarder | C++98, C++03, C++11, C++14, C++17, C++20, C++23; standarden velges via et kompilatorflagg (f.eks. -std=c++17) og lagres ikke inne i filen |
| Preprosessor-stadium | Før kompilering utvider C-preprosessoren #include-direktiver, #define-makroer og blokker for betinget kompilering (#if / #endif) |
| Tilhørende filtyper | .h og .hpp (header-deklarasjoner), .cc og .cxx (alternative C++ kildekode-endelser), .o / .obj (kompilert objektfil) |
| Kompileringsresultat | En objektfil (.o på Linux/macOS, .obj på Windows) som lenkeren kombinerer med andre objekter til en kjørbar fil eller et delt bibliotek |
| Typisk filstørrelse | Noen få KB til titalls KB per kildekodefil; maskingenererte filer eller filer med mye maler (templates) kan overstige 1 MB |
| Unicode / tegnstøtte | Strengliteraler og identifikatorer støtter Unicode (UTF-8) fra C++11 og utover; u8, u og U-prefikser tillater eksplisitt kontroll over koding |
| Linjeslutt | Plattformuavhengig - LF (Unix/macOS), CRLF (Windows) og CR aksepteres av alle store kompilatorer |
| Tilknyttede operativsystemer | Windows, macOS, Linux - og enhver plattform med en kompatibel C++-kompilator |
| Standardiseringsorgan | ISO/IEC JTC1/SC22/WG21 (C++-standardkomiteen); standarder publiseres som ISO/IEC 14882-revisjoner omtrent hvert tredje år |
| Navnekonvensjon for filer | Samsvarer vanligvis med klassen eller modulen den implementerer - f.eks. MyClass.cpp sammen med MyClass.h eller MyClass.hpp |
| Betydning av filendelse | Bokstavene «pp» står for «plus plus»; identisk C++-kildeinnhold kan alternativt bruke .cc eller .cxx etter verktøykjedens konvensjon |
| Utgitt | C++ language created 1979-1985 (Bjarne Stroustrup, Bell Labs); first ISO standard C++98 (1998) |
| Siste versjon | ISO/IEC 14882:2024 (C++23); C++26 in progress |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | isocpp.org |
CPP-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om CPP-filer.