Dans différents langages de programmation (surtout C et C++), on appelle prototype de fonction ou en-tête de fonction la déclaration d'une fonction - y compris les indications sur le nombre et le type des paramètres et le type de la valeur de retour - séparément de son implémentation. On parle aussi, de manière impropre, de déclaration anticipée. (en anglais : forward declaration, souvent mal traduit par « déclaration en avant ») d'une fonction, mais celle-ci ne doit pas nécessairement représenter un prototype de fonction à part entière dans tous les cas. Exemple : int fonction();
serait une déclaration anticipée valable en C, mais pas un prototype, car aucune indication n'est donnée sur les paramètres de la fonction. En revanche, chaque définition de fonction fournit automatiquement une déclaration prototype pour le code de programme suivant.