Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

DCL02-C implicitly assumes 'Global Scope' which can be confused with 'Scope within the same file'. Though it may not generate any errors, but there may be a possible violation of the rule as in the example below. Note the example below does not violate DCL32-C.

Code Block
bgColor#FFcccc
In file foo.h :: int id_O; // (captial letter O)
In file bar.h :: int id_0; // (numeric letter zero)

If a file foobar.h includes both foo.h and bar. h and another file foobar.c that includes foobar.h uses both id0 and idO, it is a violation of DCL02-C.

...

In a compliant solution, use of visully similar identifiers should be avoided in the same project scope.

Code Block
bgColor#ccccff
In file foo.h :: int id_a;

...


In file bar.h ::

...

Code Block
bgColor#ccccff
extern int *a_global_symbol_definition_lookup_table;
extern int *b_global_symbol_definition_lookup_tableid_b;

Risk Assessment

Failing to use visually distinct identifiers can result in referencing the wrong object or function, causing unintended program behavior.

...