Seperti yang dinyatakan @ Krishnabhadra, semua tanggapan sebelumnya dari pengguna lain, memiliki interpretasi yang benar, dan saya hanya ingin membuat analisis yang lebih rinci dari beberapa poin.
Dalam Old-C seperti dalam ANSI-C " parameter formal yang tidak diketik", ambil dimedion dari register kerja Anda atau kemampuan kedalaman instruksi (shadow register atau instruksi siklus kumulatif), dalam 8bit MPU, akan menjadi int16, dalam 16bit MPU dan seterusnya akan menjadi int16 dan seterusnya, dalam hal arsitektur 64bit dapat memilih untuk mengkompilasi opsi seperti: -m32.
Meskipun tampaknya implementasi lebih mudah pada level tinggi, Untuk melewati beberapa parameter, pekerjaan programmer dalam langkah kontrol tipe data dimencion, menjadi lebih banyak menuntut.
Dalam kasus lain, untuk beberapa arsitektur mikroprosesor, kompiler ANSI menyesuaikan, memanfaatkan beberapa fitur lama ini untuk mengoptimalkan penggunaan kode, memaksa lokasi "parameter formal yang tidak diketik" ini untuk bekerja di dalam atau di luar register kerja, hari ini Anda dapat hampir sama dengan penggunaan "volatile" dan "register".
Tetapi harus dicatat bahwa kompiler paling modern, tidak membuat perbedaan antara dua jenis pernyataan parameter.
Contoh kompilasi dengan gcc di linux:
Bagaimanapun pernyataan prototipe secara lokal tidak ada gunanya, karena tidak ada panggilan tanpa parameter referensi ke prototipe ini akan lalai. Jika Anda menggunakan sistem dengan "parameter formal yang tidak diketik", untuk panggilan eksternal, lanjutkan untuk menghasilkan tipe data prototipe deklaratif.
Seperti ini:
int myfunc(int param);