GCC中文手册

    不把asm, inline或typeof当作关键字,因此这些词可以用做标识符.用 __asm__, __inline__和__typeof__能够替代他们. `-ansi' 隐含声明了`-fno-asm'.
-fno-builtin
    不接受不是两个下划线开头的内建函数(built-in function).目前受影响的函数有_exit, abort, abs,  alloca, cos, exit, fabs, labs, memcmp, memcpy, sin, sqrt, strcmp, strcpy, 和strlen.

    `-ansi'选项能够阻止alloca和_exit成为内建函数.

-fhosted
    按宿主环境编译;他隐含声明了`-fbuiltin'选项,而且警告不正确的main函数声明.
-ffreestanding
    按独立环境编译;他隐含声明了`-fno-builtin'选项,而且对main函数没有特别要求.

    (译注:宿主环境(hosted environment)下所有的标准库可用, main函数返回一个int值,典型例子是除了 内核以外几乎 所有的程序.对应的独立环境(freestanding environment)不存在标准库,程序入口也不一定是 main,最明显的例子就是操作系 统内核.详情参考gcc网站最近的资料)

-fno-strict-prototype
    对于没有参数的函数声明,例如`int foo ();',按C风格处理---即不说明参数个数或类型. (仅针对C++).正常情况下,这样的函数foo在C++中意味着参数为空.

-trigraphs
    支持ANSI C trigraphs. `-ansi'选项隐含声明了`-trigraphs'.

-traditional
    试图支持传统C编译器的某些方面.详见GNU C手册,我们已经把细节清单从这里删除,这样当内容过时后,人们也不会 埋怨我们.

    除了一件事:对于C++程序(不是C), `-traditional'选项带来一个附加效应,允许对 this赋值.他和`-fthis-is-variable'选项的效果一样.

-traditional-cpp
    试图支持传统C预处理器的某些方面.特别是上面提到有关预处理器的内容,但是不包括 `-traditional'选项的其他效应.

-fdollars-in-identifiers
    允许在标识符(identifier)中使用`$'字符(仅针对C++).你可以指定 `-fno-dollars-in-identifiers'选项显明禁止使用`$'符. (GNU C++在某些 目标系统缺省允许`$'符,但不是所有系统.)

-fenum-int-equiv
    允许int类型到枚举类型(enumeration)的隐式转换(仅限于C++).正常情况下GNU C++允许从 enum到int的转换,反之则不行.

-fexternal-templates
    为模板声明(template declaration)产生较小的代码(仅限于C++),方法是对于每个模板函数  (template function),只在定义他们的地方生成一个副本.想要成功使用这个选项,你必须在所有使用模板的 文件中,标记 `#pragma implementation' (定义)或`#pragma interface' (声明).

    当程序用`-fexternal-templates'编译时,模板实例(template instantiation) 全部是外部类型.你 必须让需要的实例在实现文件中出现.可以通过typedef实现这一点,他引用所需的每个 实例.相对应的,如果编译时使用缺省选项`-fno- external-templates',所有模板实例明确的设为内置.

-fall-virtual
    所有可能的成员函数默认为虚函数.所有的成员函数(除了构造子函数和new或delete 成员操作符)视为所在类的虚函数.

    这不表明每次调用成员函数都将通过内部虚函数表.有些情况下,编译器能够判断出可以直接调用某个虚函数;这时就 直接调用.

-fcond-mismatch
    允许条件表达式的第二和第三个参数的类型不匹配.这种表达式的值是void.

-fthis-is-variable
    允许对this赋值(仅对C++).合并用户自定义的自由存储管理机制到C++后,使可赋值的 `this'显得不合时宜.因此,默认情况下,类 成员函数内部对this赋值是无效操作.然而为了 向后兼容,你可以通过`-fthis-is-variable'选项使这种操作有效.

-funsigned-char
    把char定义为无符号类型,如同unsigned char.

    各种机器都有自己缺省的char类型.既可能是unsigned char也可能是signed char .

    理想情况下,当依赖于数据的符号性时,一个可移植程序总是应该使用signed char或unsigned char.但是许多程序已经写成只 用简单的char,并且期待这是有符号数(或者无符号数,具体情况取决于 编写程序的目标机器).这个选项,和它的反义选项,使那样的程序工作在对应的默 认值上.

    char的类型始终应该明确定义为signed char或unsigned char,即使 它表现的和其中之一完全一样.

-fsigned-char
    把char定义为有符号类型,如同signed char.

    这个选项等同于`-fno-unsigned-char',他是the negative form of `-funsigned-char'的相反选项.同样, `-fno-signed-char'等价于 `-funsigned-char'.

-fsigned-bitfields
-funsigned-bitfields
-fno-signed-bitfields
-fno-unsigned-bitfields
    如果没有明确声明`signed'或`unsigned'修饰符,这些选项用来定义有符号位域 (bitfield)或无符号位域.缺省情况下,位域是有符号的,因为他们继承的基本整数类型,如int,是 有符号数.

    然而,如果指定了`-traditional'选项,位域永远是无符号数.

-fwritable-strings
    把字符串常量存储到可写数据段,而且不做特别对待.这是为了兼容一些老程序,他们假设字符串常量是可写的. `-traditional'选项也有相同效果.

    篡改字符串常量是一个非常糟糕的想法; ``常量''就应该是常量.

 
预处理器选项(Preprocessor Option)
下列选项针对C预处理器,预处理器用在正式编译以前,对C 源文件进行某种处理.

如果指定了`-E'选项, GCC只进行预处理工作.下面的某些选项必须和`-E'选项一起才 有意义,因为他们的输出结果不能用于编译.

-include file
    在处理常规输入文件之前,首先处理文件file,其结果是,文件file的内容先得到编译. 命令行上任何`-D'和`-U'选项永远在`- include file'之前处理, 无论他们在命令行上的顺序如何.然而`-include'和`-imacros'选项按书写顺序处理. 
 
-imacros file
    在处理常规输入文件之前,首先处理文件file,但是忽略输出结果.由于丢弃了文件file的 输出内容, `-imacros file'选项 的唯一效果就是使文件file中的宏定义生效, 可以用于其他输入文件.在处理`-imacrosfile'选项之前,预处理器首先处理`-D' 和`- U'选项,并不在乎他们在命令行上的顺序.然而`-include'和 `-imacros'选项按书写顺序处理.

-idirafter dir

共9页 首页 上一页 [1] [2] [3] [4] [5下一页 尾页>
上一篇:
下一篇: UNIX命令大全
相关信息
相关评论
相关文章
字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z