我刚开始认为代码注释,没什么特别的,但是现在看来,我的想法真的错了。
代码注释,也有很特别的地方,下面就是几种特殊的注释。
1、用FALLTHROUGH注释的地方,它用在swtich中case语句中,在case语句中,有些情况是不用break跳出swtich语句,而是要继续执行后面的case语句,在这种情况下,你就可以在后面的case语句前加上/* FALLTHROUGH */注释。
case 10: /* yy */
lt->tm_year = ATOI2(p);
if (lt->tm_year < 69) /* hack for 2000 ;-}*/
lt->tm_year += 100;
/* FALLTHROUGH */
case 8: /* mm */
lt->tm_mon= ATOI2(p);
2、用NOTREACHED 注释。这种注释用在永远不执行的地方。
size_t strcspn(const char *s1, const char *s2) { register const char *p, *spanp; register char c, sc; /* * Stop as soon as we find any character from s2. Note * that there must be a NUL ins2; it suffices to stop * when we find that, too. */ for (p = s1;;) { c = *p++; spanp = s2; do { if ((sc = *spanp++) == c) return(p - 1 - s1); } while (sc != 0); } /* NOTREACHED */ } 3、注释中用了XXX,这种情况用来标记那些不正确,但却能够正常运行的语句。
/* XXX is this correct? */ v_evaluate(vq, s, FALSE); 4、标记FIXME用来注释那些已经确定有错误、需要修改的程序段。
switch (*regparse++) { /* FIXME: these chars only have meaning at beg/end of pat? */ case '^':
5、最后一个,TODO用来标记那些需要增强功能的程序段。
/* * TODO - sort output */ int aliascmd(argc, argv)
以上是从《code reading》看到的,那书真的不错。学到的东西真的很多。