Wat is het C-bestandsformaat?
.c is een broncodebestand voor de programmeertaal C. C is een procedurele taal voor algemene doeleinden en wordt beschouwd als een programmeertaal van gemiddeld niveau die veel wordt gebruikt voor de ontwikkeling van softwaretoepassingen, besturingssystemen en embedded systemen. Het werd in 1972 gecreëerd door Dennis Ritchie bij Bell Labs en is door ANSI en ISO gestandaardiseerd via verschillende revisies - de huidige standaard is C23.
Bestanden met een .c-extensie zijn toegankelijk met teksteditors en een gebruiker kan de code in deze bestanden lezen of schrijven via eenvoudige teksteditor-software of een volledige IDE. Het .c-bestand bevat de eigenlijke code die door de ontwikkelaar is geschreven, samen met andere informatie zoals preprocessor-directives (zoals #include en #define) en commentaren. Voordat een .c-bestand kan worden uitgevoerd, moet het door een C-compiler zoals gcc of clang worden gecompileerd tot een objectbestand en vervolgens worden gelinkt naar een uitvoerbaar bestand.
.c-bestanden zijn specifiek voor de taal C en mogen niet worden verward met C++-bronbestanden, die extensies zoals .cpp of .cc gebruiken. Declaraties die tussen meerdere .c-bestanden worden gedeeld, worden geplaatst in header-bestanden met een .h-extensie.
Beveiliging & veiligheid
RISICO: LOWEen .c-bestand is platte tekst en kan niet uit zichzelf draaien, dus het openen ervan in een editor is veilig. Het risico ontstaat pas wanneer je onbekende C-code COMPILEERT en UITVOERT: broncode van een onbetrouwbare bron kan alles doen wat een programma kan zodra het is gebouwd (bestanden verwijderen, netwerktoegang, malware installeren), en de low-level aard van C maakt het makkelijk om kwaadaardige of foutieve code te verbergen. Lees de code voordat je deze compileert, bouw onbetrouwbare code in een sandbox/VM en voer nooit een gecompileerd binair bestand uit dat je niet vertrouwt. De bestandsextensie zelf bevat geen exploit - het gevaar zit in wat de code doet na compilatie.
Formaatdetails
in een notendop- C++-bronbestand (verouderd) - Historisch gezien werd .c (en hoofdletter .C op hoofdlettergevoelige Unix) ook gebruikt voor C++-broncode, de betekenis in de naam „C/C++” van deze database; modern C++ gebruikt .cpp/.cc/.cxx.
- DOS/Windows volumebrief of generieke gegevens - Zelden verschijnt „c” als een niet-broncode-artefact (bijv. een losse naam van één letter); de betekenis als broncode overheerst overweldigend.
Programma's die C-bestanden openen
Technische details
diepe specificaties| MIME-type | text/x-csrc |
| Karaktercodering | Platte ASCII of UTF-8; geen binaire magic-byte-handtekening - geïdentificeerd door inhoud, niet door bytes |
| Taalstandaard | Gestandaardiseerd als ANSI C89, daarna C99, C11, C17; huidige standaard is C23 (ISO/IEC 9899:2024) |
| Programmeerparadigma | Procedureel en imperatief; ondersteunt van nature geen klassen of objecten |
| Geheugenbeheer | Handmatig - de ontwikkelaar wijst heap-geheugen toe en geeft het vrij met malloc() en free() |
| Preprocessing-fase | Broncode wordt verwerkt door een preprocessor vóór compilatie, waarbij #include, #define en voorwaardelijke compilatie-directives worden opgelost |
| Compilatie-output | Gecompileerd naar een objectbestand (.o / .obj), daarna gelinkt naar een uitvoerbaar bestand of statische/gedeelde bibliotheek |
| Header-koppeling | Implementatielogica leeft in .c-bestanden; declaraties die over vertaaleenheden worden gedeeld, gaan in bijbehorende .h-headerbestanden |
| Primaire toepassingen | OS-kernels, embedded firmware, compilers, databases en prestatiekritische systeemsoftware |
| Commentaar-syntaxis | Blokcommentaar /* ... */ ondersteund sinds C89; regelcommentaar // toegevoegd in C99 |
| Portabiliteit | ISO-conforme code is zeer draagbaar tussen architecturen; platformverschillen worden beheerd met preprocessor-guards |
| Hoofdlettergevoeligheid | Op hoofdlettergevoelige bestandssystemen (Linux, macOS) duidt een hoofdletter .C conventioneel op een C++-bronbestand, verschillend van de kleine letter .c |
| Compiler-ecosysteem | Gecompileerd door onder andere GCC, Clang/LLVM, MSVC, Intel oneAPI C++ en TinyCC |
| Uitgebracht | C language created 1972 (Bell Labs); standardized ANSI C 1989, ISO C 1990, latest C23 |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.iso.org |
C conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over C-bestanden.