Fonksiyonu alta koyup üste prototipini koymak iyi bir çözüm değil. Böyle yaparsan, fonksiyonun tanımı ile protipin tanımının aynı olduğunu sağlama yükümlüğünü üzerine alıyorsun demektir. Fonksiyon tanımı değişirse, hemen unutmadan prototipi de değiştirmen lazım, bunu yaparken de hata yapmaman lazım.
Onun yerine fonksiyonu doğrudan üste koymak lazım. Böylece tek fonksiyon, tek tanım var.
Bu tabi bazan mümkün olmuyor. f1() fonksiyonu f2() yi çağırıyorsa, f2() de f1() i çağırıyorsa o zaman birinin prototipini vermek şart olur. Ama bu çok nadir bir durumdur.
Bir de belli bir iş yapan bir biris.c dosyası varsa, başkaları da buradaki fonksiyonları kullanacaksa, o zaman biris.h dosyası oluşturup fonksiyon prototiplerini koymak gerekir.
Ama bu durumların dışında, ne zaman mümkün ise, fonksiyonun kendisini prototip olarak kullanmak lazım. Duplikasyonu minimize etmek her zaman iyi birşeydir.