Co to jest format pliku CPP?
Pliki .cpp zawierają kod źródłowy napisany w C++, języku programowania ogólnego przeznaczenia stworzonym przez Bjarne'a Stroustrupa w Bell Labs na początku lat 80. Rozszerzenie .cpp oznacza „C plus plus” - alternatywne konwencje, takie jak .cc i .cxx, oznaczają ten sam rodzaj pliku źródłowego w ramach różnych tradycji zestawów narzędzi.
Zawartość plików .cpp
Pliki z rozszerzeniem .cpp mogą zawierać takie elementy jak:
- deklaracje zmiennych i typów,
- deklaracje i definicje funkcji,
- deklaracje klas i implementacje funkcji składowych,
- dyrektywy preprocesora (np.
#include <iostream>,#define), - odniesienia do bibliotek systemowych oraz plików nagłówkowych
.hlub.hpp, - komentarze poprawiające czytelność kodu - są one pomijane podczas kompilacji.
Czy plik .cpp to program?
Pliki .cpp zawierają kod źródłowy programu napisany w C++, ale aby uruchomić takie aplikacje, kod źródłowy musi zostać skompilowany. Kompilator - taki jak g++, clang++ lub MSVC - pobiera kod źródłowy i tłumaczy go na kod maszynowy, który komputer może wykonać bezpośrednio. Tylko skompilowany wynik można nazwać programem; sam plik .cpp to tylko tekst. Projekt zazwyczaj kompiluje wiele plików .cpp i łączy je ze sobą, aby stworzyć końcowy plik wykonywalny.
Czy mogę otworzyć plik .cpp?
Pliki .cpp to nic innego jak zwykłe pliki tekstowe i można je edytować za pomocą dowolnego edytora tekstu. Jednak ich edycja wymaga znajomości składni C++, aby uniknąć błędów, które mogą uniemożliwić kompilację lub spowodować nieprawidłowe działanie programu. Z tego powodu edycję plików .cpp najlepiej wykonywać przy użyciu dedykowanych narzędzi, które oferują pomocne funkcje, takie jak:
- automatyczna numeracja linii,
- podświetlanie składni,
- uzupełnianie kodu i podpowiedzi,
- powiadomienia o błędach składniowych (brakujące nawiasy zamykające, średniki itp.),
- zintegrowane wsparcie dla budowania i debugowania.
Popularne środowiska to Microsoft Visual Studio, VS Code i Apple Xcode. Sam plik .cpp nie zawiera wbudowanych informacji o wersji - docelowy standard C++ (od C++98 do C++23) jest wybierany w czasie kompilacji za pomocą flag kompilatora.
Bezpieczeństwo
RYZYKO: LOWPlik .cpp jest zwykłym tekstem i nie może uruchomić się samoczynnie, więc otwarcie go w edytorze jest bezpieczne. Ryzyko pojawia się dopiero w momencie KOMPILACJI i URUCHOMIENIA nieznanego kodu C++: źródło z niezaufanego pochodzenia może po zbudowaniu zrobić wszystko, co potrafi program (usuwanie plików, dostęp do sieci, instalacja złośliwego oprogramowania), a niskopoziomowy dostęp C++ ułatwia ukrycie złośliwego lub błędnego kodu. Przeczytaj kod przed kompilacją, buduj niezaufany kod w piaskownicy/VM i nigdy nie uruchamiaj skompilowanego pliku binarnego, któremu nie ufasz. Samo rozszerzenie pliku nie niesie ze sobą exploita - niebezpieczeństwo tkwi w tym, co kod robi po kompilacji.
Szczegóły formatu
w pigułce- Źródło C++ (alternatywne rozszerzenia) - Tę samą rolę źródła C++ pełnią również rozszerzenia .cc, .cxx, .c++ oraz (wielką literą) .C; .cpp jest dominującą konwencją w systemie Windows i projektach wieloplatformowych.
Programy otwierające pliki CPP
Szczegóły techniczne
specyfikacja| Typ MIME | text/x-c++src (akceptowane również: text/x-c++ oraz text/plain) |
| Kodowanie pliku | Zwykły tekst - ASCII lub UTF-8; znacznik UTF-8 BOM (EF BB BF) na początku jest akceptowany, ale nie wymagany |
| Sygnatura pliku / magiczne bajty | Brak - identyfikowany po zawartości: zazwyczaj zaczyna się od komentarzy // lub /* */, dyrektyw #include lub definicji klas/funkcji |
| Struktura pliku | Dyrektywy preprocesora (#include, #define, #if), deklaracje using/namespace, definicje klas i funkcji oraz punkt wejścia main() |
| Wymagana kompilacja | Tak - musi zostać skompilowany przez g++, clang++ lub MSVC; plik .cpp to czytelny dla człowieka tekst źródłowy, a nie plik wykonywalny |
| Standardy języka docelowego | C++98, C++03, C++11, C++14, C++17, C++20, C++23; standard jest wybierany za pomocą flagi kompilatora (np. -std=c++17) i nie jest zapisany wewnątrz pliku |
| Etap preprocesora | Przed kompilacją preprocesor C rozwija dyrektywy #include, makra #define i bloki kompilacji warunkowej (#if / #endif) |
| Powiązane typy plików | .h i .hpp (deklaracje nagłówkowe), .cc i .cxx (alternatywne rozszerzenia źródłowe C++), .o / .obj (skompilowany plik obiektowy) |
| Wynik kompilacji | Plik obiektowy (.o w Linux/macOS, .obj w Windows), który linker łączy z innymi obiektami w plik wykonywalny lub bibliotekę współdzieloną |
| Typowy rozmiar pliku | Od kilku KB do kilkudziesięciu KB na plik źródłowy; pliki generowane maszynowo lub silnie oparte na szablonach mogą przekraczać 1 MB |
| Obsługa Unicode / znaków | Literały ciągów znaków i identyfikatory obsługują Unicode (UTF-8) od wersji C++11; prefiksy literałów u8, u i U pozwalają na jawną kontrolę kodowania |
| Końce linii | Niezależne od platformy - LF (Unix/macOS), CRLF (Windows) oraz CR są akceptowane przez główne kompilatory |
| Skojarzone systemy operacyjne | Windows, macOS, Linux - oraz każda platforma z kompatybilnym zestawem narzędzi kompilatora C++ |
| Organizacja normalizacyjna | ISO/IEC JTC1/SC22/WG21 (Komitet Standardów C++); standardy są publikowane jako rewizje ISO/IEC 14882 w cyklu około 3-letnim |
| Konwencja nazewnictwa plików | Zazwyczaj odpowiada nazwie klasy lub modułu, który implementuje - np. MyClass.cpp w parze z MyClass.h lub MyClass.hpp |
| Znaczenie nazwy rozszerzenia | Litery „pp” oznaczają „plus plus”; identyczna zawartość źródłowa C++ może alternatywnie używać .cc lub .cxx zgodnie z konwencją zestawu narzędzi |
| Wydano | C++ language created 1979-1985 (Bjarne Stroustrup, Bell Labs); first ISO standard C++98 (1998) |
| Najnowsza wersja | ISO/IEC 14882:2024 (C++23); C++26 in progress |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | isocpp.org |
Konwersje CPP
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki CPP.