C-ohjelmointikieli on kehitetty jo 1970-luvulla ja on edelleen varsin laajalti käytetty. Myöhemmin luotiin uusi kieli lisäämällä olio-ominaisuudet ja tästä uudesta kielestä käytetään nimitystä C++.
C-kieliselle lähdekoodi-tiedostolle käytetään yleensä tarkenninta .c (.cpp on yleensä C++ koodia sisältävä tiedosto). Header-tiedostojen tarkennin on .h ja niissä on kuvattu ohjelmassa käytettävien funktioiden rakenne. Funktioiden varsinainen koodi on kuitenkin .c-tiedostoissa.
Windowsissa suoritettavien sovellusten tarkennin on .exe. Jos siis kirjoitetaan suoritettava sovellus nimeltäänmyApp
, on C-kielisen kääntäjän tuottama suoritettava tiedosto nimeltään myApp.exe
. Linuxissa ja MACissa suoritettava tiedosto on yleensä ilman päätettä eli se olisi myApp
Yksinkertaisesti voidaan kuvata c-sovelluksen luontia näin:
Edellä sovelluksen luonti kuvattiin yksinkertaistettuna. Tarkempi kuvaus edellyttää kahden uuden asian selitystä: linkkeri ja kirjastot. Kirjastot eli kirjastotiedostot ovat valmiiksi käännettyjä tiedostoja. Ne eivät kuitenkaan ole itsenäisesti suoritettavia kuten exe-tiedostot. Ne voivat olla ohjelmoijan itsensä kirjoittamia tai C-ohjelmointiympäristön mukana toimitettuja tiedostoja. Windowsissa näiden kirjastotiedostojen tarkennin on dll.
Esimerkiksi haluat kirjoittaa sovelluksen, jossa lasketaan neliöjuuri. Tarvittava funktio sqrt löytyy C ohjelmointiympäristön mukana toimitettavista kirjastoista (esim. libmmd.dll). Ja saat tuossa kirjastossa olevat funktiot käyttöön lisäämällä sovelluksesi alkuun viittauksen header-tiedostoon math.h seuraavasti;
Tarkemmin kuvattuna kääntäminen eli exe-tiedoston muodostaminen tapahtuu kahdessa vaiheessa:
Tiedostopääte | Tiedostotyyppi |
---|---|
.a | static library file |
.c | C language file |
.cpp | C++ language file |
.dll | Dynamic Linked Library file (Windows) |
.h | C Header file |
.lib | In UNIX a list of objects. In Windows a collection of objects. |
.o | UNIX Object file |
.so | Dynamic Shared Library file (UNIX ) |