Campbell Ritchie wrote:That sounds like Hungarian notation; see Joel Spolsky.
No, the use of underscores for non-public functions in Unix/C predates the very existence of Microsoft.
Hungarian notation is a now-discredited technique where the data type of a variable was encoded as a prefix into the variable's name. The underscore convention was a semantic signal that ordinary application programmers should use the indicated variable or function with care, if at all and was really just a way to avoid namespace collisions back before namespaces existed in the C-verse. Because of the prefix-underscore convention, application developers weren't going to accidentally/unknowingly name one of their own resources the same thing as an internal support resource with possibly tragic results.
Hungarian notation was a disaster in C++. I tried using it for a time, but I was refactoring my data types so often that the names and actual data types ended up at odds more often than not.