Barr Group TwitterBarr Group Vimeo


The following C coding rules relate to the naming of procedures, functions, and macros:

Rule 6.1.a.) No procedure shall have a name that is a keyword of C, C++, or any other well-known extension of the C programming language, including specifically K&R C and C99. Restricted names include interrupt, inline, class, true, false, public, private, friend, protected, and many others.

Rule 6.1.b.) No procedure shall have a name that overlaps a function in the C standard library. Examples of such names include strlen(), atoi(), and memset().

Rule 6.1.c.) No procedure shall have a name that begins with an underscore.

Rule 6.1.d.) No procedure name shall be longer than 31 characters

Rule 6.1.e.) No function name shall contain any uppercase letters.

Rule 6.1.f.) No macro name shall contain any lowercase letters.

Rule 6.1.g.) Underscores shall be used to separate words in procedure names.

Rule 6.1.h.) Each procedure’s name shall be descriptive of its purpose. Note that procedures encapsulate the “actions” of a program and thus benefit from the use of verbs in their names (e.g., adc_read()); this “noun-verb” word ordering is recommended. Alternatively, procedures may be named according to the question they answer (e.g., led_is_on()).

Rule 6.1.i.) The names of all public functions shall be prefixed with their module name and an underscore (e.g., force_read()).


Good function names make reviewing and maintaining code easier (and thus cheaper). The data (variables) in programs can be thought of as nouns. Procedures manipulate those nouns and can be thought of as verbs.

The use of module prefixes is in keeping with the important goal of encapsulation and helps avoid procedure name overlaps. This is not necessary in C++ where namespaces and/or classes can be used to the same effect.




Compliance with these naming rules shall be established in the detailed design phase and be enforced during code reviews.

What’s happening and how it’s done. Get in the know.

Sign Up for Our Newsletter

Receive free how-to articles, industry news, and the latest info on Barr Group webinars and training courses via email. 

To prevent automated spam submissions leave this field empty.