Is there a naming convention for C language implementation only (private) constants? : <p>Let's say that I am writing a library named <code>my</code>, which has a module <code>myString</code>.</p>

<p>Publicly exposed functions and constants for <code>myString</code> are declared in <code>myString.h</code> with the following convention:</p>

<pre><code>typedef struct myString myString;
extern const size_t MY_STRING_MAX_LEN;
myString *my_string_new();
</code></pre>

<p>Private implementation only functions and struct members are declared in <code>myString.c</code> with the following convention:</p>

<pre><code>_grow_buffer(myString *this);
char *_buffer;
</code></pre>

<p>My question: Is there a similar convention for private, implementation only constants?</p>

<p>For example, <code>_CHUNK_SIZE</code> is what I initially wanted to go with. Then I read that the C language specification says not to use an underscore followed by an uppercase letter at the start of a name, as such names may be used in future versions of the language.</p>

<p>I like using the starting underscore convention, as it removes a lot of verbosity. I could use <code>MY_STRING_CHUNK_SIZE</code> or some variation, but that's not as pretty IMO.</p>
