Secara umum definisi fungsi sama dengan prosedur, yaitu "suatu bagian program yang terpisah dari program utamanya dan sewaktu-waktu dapat dipanggil kembali".
Tetapi keduanya juga mempunyai perbedaan, diantara perbedaan yang paling mendasar adalah :
1. Fungsi mempunyai tipe data, sedangkan prosedur tidak (dimulai dengan void)
contoh :
Fungsi : int max(int a, int b)
Prosedur : void Max(int a, int b)
2. Fungsi dideklarasikan sebagai Variabel, sedangkan prosedur tidak
contoh :
Fungsi : hasil=max(4,5) --> hasil adalah variabel yang menampung hasil dari fungsi max
Prosedur : max(4,5)
3. Fungsi mempunyai Return / nilai balik sedangkan prosedur tidak