C-kielen etuna mainitaan usein, että sillä kirjoitetut ohjelmat ovat siirrettäviä (portable).
Toisin sanoen jollekin koneelle kirjoitetut lähdekoodit voidaan siirtää sellaisinaan käännettäviksi muihin koneisiin.
Tämä johtuu siitä, että C:n koneriippuvat piirteet eli piirteet, jotka käyttävät hyväksi kohdelaitteen ominaisuuksia, on eristetty kirjastofunktioihin (library functions). Kirjastofunktiot ovat C-järjestelmään kuuluvia valmiita aliohjelmia, jotka toteutetaan kussakin järjestelmässä laitteiston edellyttämällä tavalla mutta ovat ohjelmoijan näkökulmasta aina samanlaisia.
Siirrettävyys on vaikeasti saavutettava tavoite. Jos käytetään pelkästään standardissa määriteltyjä kirjastoja, voidaan päästä melko lähelle siirrettävyyttä.