"In addition to the names documented in this manual, reserved names include all external identifiers (global functions and variables) that begin with an underscore (‘_’) and all identifiers regardless of use that begin with either two underscores or an underscore followed by a capital letter are reserved names. This is so that the library and header files can define functions, variables, and macros for internal purposes without risk of conflict with names in user programs."
"In addition to the names documented in this manual, reserved names include all external identifiers (global functions and variables) that begin with an underscore (‘_’) and all identifiers regardless of use that begin with either two underscores or an underscore followed by a capital letter are reserved names. This is so that the library and header files can define functions, variables, and macros for internal purposes without risk of conflict with names in user programs."
http:// www.gnu. org/software/ libc/manual/ html_node/ Reserved- Names.html
and according to the C Standard, section 7.1.3 [ISO/IEC 9899:2011]. See also https:/ /www.securecodi ng.cert. org/confluence/ display/ seccode/ DCL37-C. +Do+not+ declare+ or+define+ a+reserved+ identifier
So neither _Commit nor __C are good choices, imho.
Of course this is a consideration very tedious and academic.