对 termios.h 个常量感到困惑
confused about termios.h constants
test.c...
#include <termios.h>
#include <stdio.h>
int main() {
printf("%x\n",B600);
}
在我的系统上打印“8”。
gcc -M test.c 显示
/usr/include/stdc-predef.h /usr/include/termios.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/termios.h \
/usr/include/x86_64-linux-gnu/sys/ttydefaults.h /usr/include/stdio.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h
/usr/include/x86_64-linux-gnu/bits/termios.h 的内部:
#define B600 0000010
其他 headers 的 None 有 B600 的定义。 8的值从哪里来?
在 C 语言中,以零开头的数字文字被解释为八进制数,因此 010 在八进制中表示 10,因此表示 8。
test.c...
#include <termios.h>
#include <stdio.h>
int main() {
printf("%x\n",B600);
}
在我的系统上打印“8”。
gcc -M test.c 显示
/usr/include/stdc-predef.h /usr/include/termios.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/termios.h \
/usr/include/x86_64-linux-gnu/sys/ttydefaults.h /usr/include/stdio.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h
/usr/include/x86_64-linux-gnu/bits/termios.h 的内部:
#define B600 0000010
其他 headers 的 None 有 B600 的定义。 8的值从哪里来?
在 C 语言中,以零开头的数字文字被解释为八进制数,因此 010 在八进制中表示 10,因此表示 8。