C programlama dilinde bir fonksiyonun gövdesi içerisinde başka bir fonksiyonun tanımı (nested function definition) yapılamaz. Tüm fonksiyon tanımlamaları birbirinden bağımsız olarak ana program düzeyinde gerçekleştirilmelidir.
Dönüş tipi olarak void bildirilen fonksiyonlar, çağrıldıkları yere herhangi bir değer (result) geri göndermezler. Bu tür fonksiyonlarda return deyimi ya hiç kullanılmaz ya da sadece 'return;' şeklinde değer belirtilmeden kullanılır.
Fonksiyon parametreleri aslında fonksiyon içinde tanımlanan özel birer yerel değişkendir (local variable). Bu parametreler, ana program ile fonksiyon arasında veri alışverişini ve iletişimi sağlamak için köprü görevi görür.
5! = 5 * 4! şeklinde ifade edilen özyinelemeli matematiksel hesaplama yaklaşımı, fonksiyonların kendi kendini çağırma mantığını somutlaştırır. İşlem, base case olan 1! veya 0! durumuna ulaşana kadar alt katmanlara doğru inerek devam eder.
Rastgele sayı üretiminde hayati rol oynayan rand() ve srand() fonksiyonları <stdlib.h> standart kütüphanesinde tanımlanmıştır. Bu fonksiyonları kullanmak isteyen geliştiricilerin bu kütüphaneyi kodlarına dahil etmeleri gerekmektedir.