...
Code Block | ||||
---|---|---|---|---|
| ||||
static char msg[100]; static const size_t msgsize = sizeof( msg); void report_error(const char *str) { char msg[80]; snprintf(msg, msgsize, "Error: %s\n", str); /* ... */ } int main(void) { /* ... */ report_error("some error"); return 0; } |
Compliant Solution
This compliant solution uses different, more descriptive variable names:
Code Block | ||||
---|---|---|---|---|
| ||||
static char message[100]; static const size_t message_size = sizeof( message); void report_error(const char *str) { char msg[80]; snprintf(msg, sizeof( msg), "Error: %s\n", str); /* ... */ } int main(void) { /* ... */ report_error("some error"); return 0; } |
When the block is small, the danger of reusing variable names is mitigated by the visibility of the immediate declaration. Even in this case, however, variable name reuse is not desirable. In general, the larger the declarative region of an identifier, the more descriptive and verbose should be the name of the identifier.
...