Che cos'è il formato di file C?
.c è un file di codice sorgente per il linguaggio di programmazione C. Il C è un linguaggio procedurale di uso generale ed è considerato un linguaggio di programmazione di medio livello ampiamente utilizzato per lo sviluppo di applicazioni software, sistemi operativi e sistemi embedded. Creato da Dennis Ritchie presso i Bell Labs nel 1972, è stato standardizzato da ANSI e ISO attraverso diverse revisioni - lo standard attuale è C23.
I file con estensione .c sono accessibili con editor di testo e un utente può leggere o scrivere il codice in questi file tramite un semplice software di editing testuale o un IDE completo. Il file .c contiene il codice effettivo scritto dallo sviluppatore insieme ad altre informazioni come le direttive del preprocessore (come #include e #define) e i commenti. Prima dell'esecuzione, un file .c deve essere compilato da un compilatore C come gcc o clang in un file oggetto e poi collegato (linked) in un eseguibile.
I file .c sono specifici del linguaggio C e non devono essere confusi con i file sorgente C++, che utilizzano estensioni come .cpp o .cc. Le dichiarazioni condivise tra più file .c vengono inserite nei file header con estensione .h.
Sicurezza e incolumità
RISCHIO: LOWUn file .c è testo semplice e non può essere eseguito da solo, quindi aprirne uno in un editor è sicuro. Il rischio appare solo quando si COMPILA ed ESEGUE codice C sconosciuto: il sorgente proveniente da una fonte non attendibile può fare tutto ciò che un programma può fare una volta compilato (eliminare file, accesso alla rete, installare malware) e la natura di basso livello del C rende facile nascondere codice dannoso o buggato. Leggi il codice prima di compilarlo, compila il codice non attendibile in una sandbox/VM e non eseguire mai un binario compilato di cui non ti fidi. L'estensione del file in sé non comporta exploit - il pericolo risiede in ciò che il codice fa dopo la compilazione.
Dettagli del formato
in sintesi- File sorgente C++ (legacy) - Storicamente .c (e .C maiuscola su Unix case-sensitive) era usato anche per i sorgenti C++, il significato nel nome «C/C++» di questo database; il C++ moderno usa .cpp/.cc/.cxx.
- Lettera di volume DOS/Windows o dati generici - Raramente, «c» appare come un artefatto non sorgente (es. un nome casuale a lettera singola); il significato di codice sorgente domina in modo schiacciante.
Programmi che aprono file C
Dettagli tecnici
specifiche approfondite| Tipo MIME | text/x-csrc |
| Codifica dei caratteri | ASCII semplice o UTF-8; nessuna firma magic-byte binaria - identificato dal contenuto, non dai byte |
| Standard del linguaggio | Standardizzato come ANSI C89, poi C99, C11, C17; lo standard attuale è C23 (ISO/IEC 9899:2024) |
| Paradigma di programmazione | Procedurale e imperativo; non supporta nativamente classi o oggetti |
| Gestione della memoria | Manuale - lo sviluppatore alloca e libera la memoria heap usando malloc() e free() |
| Fase di preprocessamento | Il sorgente viene elaborato da un preprocessore prima della compilazione, risolvendo #include, #define e direttive di compilazione condizionale |
| Output della compilazione | Compilato in un file oggetto (.o / .obj), quindi collegato in un eseguibile o in una libreria statica/condivisa |
| Accoppiamento header | La logica di implementazione risiede nei file .c; le dichiarazioni condivise tra le unità di traduzione vanno nei file header .h associati |
| Applicazioni primarie | Kernel di sistemi operativi, firmware embedded, compilatori, database e software di sistema critico per le prestazioni |
| Sintassi dei commenti | Commenti a blocco /* ... */ supportati da C89; commenti a riga singola // aggiunti in C99 |
| Portabilità | Il codice conforme ISO è altamente portabile tra architetture; le differenze di piattaforma sono gestite con guardie del preprocessore |
| Distinzione case-sensitivity | Sui filesystem case-sensitive (Linux, macOS), la .C maiuscola indica convenzionalmente un file sorgente C++, distinto dalla .c minuscola |
| Ecosistema dei compilatori | Compilato da GCC, Clang/LLVM, MSVC, Intel oneAPI C++ e TinyCC tra gli altri |
| Rilasciato | C language created 1972 (Bell Labs); standardized ANSI C 1989, ISO C 1990, latest C23 |
| Standard aperto | Sì · royalty-free |
| Specifica | www.iso.org |
Conversioni C
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file C.