Jak stwierdzono @Krishnabhadra, wszystkie poprzednie odpowiedzi od innych użytkowników mają poprawną interpretację, a ja po prostu chcę dokonać bardziej szczegółowej analizy niektórych punktów.
W Old-C, podobnie jak w ANSI-C, „ beztypowy parametr formalny ”, weź wymiar rejestru pracy lub możliwości głębokości instrukcji (rejestry cienia lub cykl skumulowany instrukcji), w 8-bitowym MPU, będzie int16, w 16-bitowym MPU i tak będzie int16 i tak dalej, w przypadku architektury 64-bitowej może wybrać kompilację opcji takich jak: -m32.
Chociaż implementacja na wysokim poziomie wydaje się prostsza, przy przekazywaniu wielu parametrów praca programisty w kroku typu danych dimmencji sterującej staje się bardziej wymagająca.
W innych przypadkach, w przypadku niektórych architektur mikroprocesorów, spersonalizowane kompilatory ANSI wykorzystały niektóre z tych starych funkcji w celu zoptymalizowania wykorzystania kodu, zmuszając lokalizację tych „nietypowych parametrów formalnych” do pracy w rejestrze pracy lub poza nim, dziś otrzymujesz prawie tak samo z użyciem „lotnych” i „rejestrów”.
Należy jednak zauważyć, że najnowocześniejsze kompilatory nie rozróżniają dwóch typów deklaracji parametrów.
Przykłady kompilacji z gcc w systemie Linux:
W każdym razie lokalna instrukcja prototypu jest bezużyteczna, ponieważ nie ma wywołania bez parametrów odniesienie do tego prototypu zostanie pominięte. Jeśli używasz systemu z „beztypowym parametrem formalnym”, w przypadku wywołania zewnętrznego przejdź do generowania deklaratywnego prototypowego typu danych.
Lubię to:
int myfunc(int param);