Function prototype scope
From cppreference.com
If the declarator or type specifier that declares the identifier appears within the list of parameter declarations in a function prototype (not part of a function definition), the dentifier has function prototype scope, which terminates at the end of the function declarator.
So, scope of an identifier begins at the end of the identifier's declaration and ends at the end of the function declaration. The identifier in the function prototype and the corresponding identifier in the function definition need not be identical but can be perhaps to improve readability.
[edit] Example
The scope of identifier "lho" begins at the comma and ends at the closing parenthesis.
Run this code
#include <stdio.h> /* function prototype (not part of a function definition) */ int simple_add (int lho, int rho); int lho; /* no conflict with "lho" in function prototype */ int main(void) { printf("%d\n", simple_add(1,2)); return 0; } int simple_add (int lho, int rho) { return (lho+rho); }
Possible output:
3