Як зазначається @Krishnabhadra, всі попередні відповіді інших користувачів мають правильну інтерпретацію, і я просто хочу зробити більш детальний аналіз деяких моментів.
У Old-C, як і в ANSI-C, " нетипізований формальний параметр ", прийміть розмір вашого робочого реєстру або можливості глибини інструкцій (тіньові регістри або кумулятивний цикл інструкцій), в 8-бітовому MPU, буде int16, 16-бітовим MPU і так буде int16 і так далі, у випадку, якщо 64-бітова архітектура може вибрати компіляцію параметрів, таких як: -m32.
Хоча це здається більш простим впровадженням на високому рівні, для передачі декількох параметрів робота програміста на етапі типу даних управління розміром стає більш вимогливою.
В інших випадках для деяких архітектур мікропроцесорів компілятори ANSI налаштовували, використовували деякі з цих старих функцій для оптимізації використання коду, змушуючи розташування цих "нетипізованих формальних параметрів" працювати в робочому регістрі або поза ним, сьогодні ви отримуєте майже те саме із застосуванням "летючого" та "реєструвати".
Але слід зазначити, що найсучасніші компілятори не роблять різниці між двома типами декларації параметрів.
Приклади компіляції з gcc під Linux:
У будь-якому випадку заява прототипу локально не приносить користі, оскільки немає виклику без параметрів, посилання на цей прототип буде відхилено. Якщо ви використовуєте систему з "нетиповим формальним параметром", для зовнішнього виклику переходите до створення декларативного типу даних прототипу.
Подобається це:
int myfunc(int param);