【发布时间】:2014-01-04 11:06:13
【问题描述】:
在下面的 C 代码中,所有这些定义都使用了八进制文字吗?即使它们以多个零开头?
#define TCL_REG_BASIC 000000 /* BREs (convenience). */
#define TCL_REG_EXTENDED 000001 /* EREs. */
#define TCL_REG_ADVF 000002 /* Advanced features in EREs. */
#define TCL_REG_ADVANCED 000003 /* AREs (which are also EREs). */
#define TCL_REG_QUOTE 000004 /* No special characters, none. */
#define TCL_REG_NOCASE 000010 /* Ignore case. */
#define TCL_REG_NOSUB 000020 /* Don't care about subexpressions. */
#define TCL_REG_EXPANDED 000040 /* Expanded format, white space & comments. */
#define TCL_REG_NLSTOP 000100 /* \n doesn't match . or [^ ] */
#define TCL_REG_NLANCH 000200 /* ^ matches after \n, $ before. */
#define TCL_REG_NEWLINE 000300 /* Newlines are line terminators. */
#define TCL_REG_CANMATCH 001000 /* Report details on partial/limited * matches. */
【问题讨论】:
-
是的,没错,虽然它只需要一个前导零。
-
尤其是如果它们以多个零开头 ;)(十六进制文字以 0x 开头)
-
我只是想知道为什么有这么多前导零,哈哈。
-
作者可能试图暗示位域的宽度。并希望他们都排好队
-
蒂姆说了什么。这种东西非常标准(在 Windows 标题中到处使用)。