ok wrote On 03/01/06 13:13,:
I came across some variable name like __gc_context.
I started thinking a bit if I should tell the author of that code that names
starting with underscores are reserved for the implementation. I decided not
to because it would make me look like somebody who just wastes other
people's time instead of finding real bugs.
Come on, how serious should we take this rule? This wont ever be an issue
You are *so* right! Down with the pedants! Just for
the sake of interest, though, would you try the following
program on your system and tell us what the output is?
#include <assert.h>
#include <ctype.h>
#include <errno.h>
#include <float.h>
#include <inttypes.h>
#include <iso646.h>
#include <limits.h>
#include <locale.h>
#include <math.h>
#include <setjmp.h>
#include <signal.h>
#include <stdarg.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <wchar.h>
#include <wctype.h>
int __EXTENSIONS__ = __LINE__;
int __MATHERR_ERRNO_DONTCARE = __LINE__;
int __P = __LINE__;
int __PRAGMA_REDEFINE_EXTNAME = __LINE__;
int ___errno = __LINE__;
int __assert = __LINE__;
int __buf = __LINE__;
int __filbuf = __LINE__;
int __flsbuf = __LINE__;
int __flt_rounds = __LINE__;
int __fltrounds = __LINE__;
int __i386 = __LINE__;
int __ia64 = __LINE__;
int __lint = __LINE__;
int __longlong_t = __LINE__;
int __posix_asctime_r = __LINE__;
int __posix_ctime_r = __LINE__;
int __posix_sigwait = __LINE__;
int __setp = __LINE__;
int __sigev_pad2 = __LINE__;
int __signo = __LINE__;
int __sparc = __LINE__;
int __strptime_dontzero = __LINE__;
int __time = __LINE__;
int __tm = __LINE__;
int __va_list = __LINE__;
#define SHOW(x) printf("%s == %d\n", STRING(x), x);
int main(void)
{
SHOW(__EXTENSIONS__);
SHOW(__MATHERR_ERRNO_DONTCARE);
SHOW(__P);
SHOW(__PRAGMA_REDEFINE_EXTNAME);
SHOW(___errno);
SHOW(__assert);
SHOW(__buf);
SHOW(__filbuf);
SHOW(__flsbuf);
SHOW(__flt_rounds);
SHOW(__fltrounds);
SHOW(__i386);
SHOW(__ia64);
SHOW(__lint);
SHOW(__longlong_t);
SHOW(__posix_asctime_r);
SHOW(__posix_ctime_r);
SHOW(__posix_sigwait);
SHOW(__setp);
SHOW(__sigev_pad2);
SHOW(__signo);
SHOW(__sparc);
SHOW(__strptime_dontzero);
SHOW(__time);
SHOW(__tm);
SHOW(__va_list);
return 0;
}