If a declaration for an identifier within a block does not include the extern storage-class specifier, the identifier has no linkage and is unique to the function.
The following identifiers have no linkage:
If an identifier has no linkage, declaring the same name again (in a declarator or type specifier) in the same scope level generates a symbol redefinition error.