-ansi 支持 C89,关闭不符和C89的 GNU扩展
-std=value value可以是c89,iso9899:1990,iso9989:199409,c99,c9x,iso9899:1999,iso9989:199x,gnu89,gnu99;gcc 默认使用gnu89,gnu99完全实现后,会用gnu99
-traditional 使用 ISO C 之前的C;C89的一些关键字还没不认为是关键字:如 inline, typeof, const, volatile 和 signed,这个选项也相当于同时开始-fwritable-strings, -fno-asm选项;
-fsigned-char char默认为signed char
-funsigned-char char 默认为 unsigned char
-fno-signed-char char 只能为unsigned char
-fno-unsinged-char char 只能为signed char
-fwritable-strings 常量字符串可写
-fhosted 有完整的标准库可用,程序从 main() 开始,并返回 int,一般的程序都这样;
-ffreestanding 没有标准库可用,程序的开始和结束是和实现相关的,如:linux 内核;
参靠:
The definitive guide to gcc, chapter 1, Compiling C Dialects.