⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gcc中文手册1.htm

📁 GCC中文使用详细说明
💻 HTM
📖 第 1 页 / 共 4 页
字号:
      <BR><BR>下面是所有选项的摘要,按类型分组,解释放在后面的章节中.&nbsp; 
      <BR><BR>总体选项(Overall&nbsp;Option)&nbsp; 
      <BR><BR>-c&nbsp;-S&nbsp;-E&nbsp;-o&nbsp;file&nbsp;-pipe&nbsp;-v&nbsp;-x&nbsp;language&nbsp; 
      <BR>语言选项(Language&nbsp;Option)&nbsp; 
      <BR>-ansi&nbsp;-fall-virtual&nbsp;-fcond-mismatch&nbsp;-fdollars-in-identifiers&nbsp;-fenum-int-equiv&nbsp;-fexternal-templates&nbsp;-fno-asm&nbsp;-fno-builtin&nbsp;-fhosted&nbsp;-fno-hosted&nbsp;-ffreestanding&nbsp;-fno-freestanding&nbsp;-fno-strict-prototype&nbsp;-fsigned-bitfields&nbsp;-fsigned-char&nbsp;-fthis-is-variable&nbsp;-funsigned-bitfields&nbsp;-funsigned-char&nbsp;-fwritable-strings&nbsp;-traditional&nbsp;-traditional-cpp&nbsp;-trigraphs&nbsp; 
      <BR>警告选项(Warning&nbsp;Option)&nbsp; 
      <BR>-fsyntax-only&nbsp;-pedantic&nbsp;-pedantic-errors&nbsp;-w&nbsp;-W&nbsp;-Wall&nbsp;-Waggregate-return&nbsp;-Wcast-align&nbsp;-Wcast-qual&nbsp;-Wchar-subscript&nbsp;-Wcomment&nbsp;-Wconversion&nbsp;-Wenum-clash&nbsp;-Werror&nbsp;-Wformat&nbsp;-Wid-clash-len&nbsp;-Wimplicit&nbsp;-Wimplicit-int&nbsp;-Wimplicit-function-declaration&nbsp;-Winline&nbsp;-Wlong-long&nbsp;-Wmain&nbsp;-Wmissing-prototypes&nbsp;-Wmissing-declarations&nbsp;-Wnested-externs&nbsp;-Wno-import&nbsp;-Wparentheses&nbsp;-Wpointer-arith&nbsp;-Wredundant-decls&nbsp;-Wreturn-type&nbsp;-Wshadow&nbsp;-Wstrict-prototypes&nbsp;-Wswitch&nbsp;-Wtemplate-debugging&nbsp;-Wtraditional&nbsp;-Wtrigraphs&nbsp;-Wuninitialized&nbsp;-Wunused&nbsp;-Wwrite-strings&nbsp; 
      <BR>调试选项(Debugging&nbsp;Option)&nbsp; 
      <BR>-a&nbsp;-dletters&nbsp;-fpretend-float&nbsp;-g&nbsp;-glevel&nbsp;-gcoff&nbsp;-gxcoff&nbsp;-gxcoff+&nbsp;-gdwarf&nbsp;-gdwarf+&nbsp;-gstabs&nbsp;-gstabs+&nbsp;-ggdb&nbsp;-p&nbsp;-pg&nbsp;-save-temps&nbsp;-print-file-name=library&nbsp;-print-libgcc-file-name&nbsp;-print-prog-name=program&nbsp; 
      <BR>优化选项(Optimization&nbsp;Option)&nbsp; 
      <BR>-fcaller-saves&nbsp;-fcse-follow-jumps&nbsp;-fcse-skip-blocks&nbsp;-fdelayed-branch&nbsp;-felide-constructors&nbsp;-fexpensive-optimizations&nbsp;-ffast-math&nbsp;-ffloat-store&nbsp;-fforce-addr&nbsp;-fforce-mem&nbsp;-finline-functions&nbsp;-fkeep-inline-functions&nbsp;-fmemoize-lookups&nbsp;-fno-default-inline&nbsp;-fno-defer-pop&nbsp;-fno-function-cse&nbsp;-fno-inline&nbsp;-fno-peephole&nbsp;-fomit-frame-pointer&nbsp;-frerun-cse-after-loop&nbsp;-fschedule-insns&nbsp;-fschedule-insns2&nbsp;-fstrength-reduce&nbsp;-fthread-jumps&nbsp;-funroll-all-loops&nbsp;-funroll-loops&nbsp;-O&nbsp;-O2&nbsp;-O3&nbsp; 
      <BR>预处理器选项(Preprocessor&nbsp;Option)&nbsp; 
      <BR>-Aassertion&nbsp;-C&nbsp;-dD&nbsp;-dM&nbsp;-dN&nbsp;-Dmacro[=defn]&nbsp;-E&nbsp;-H&nbsp;-idirafter&nbsp;dir&nbsp;-include&nbsp;file&nbsp;-imacros&nbsp;file&nbsp;-iprefix&nbsp;file&nbsp;-iwithprefix&nbsp;dir&nbsp;-M&nbsp;-MD&nbsp;-MM&nbsp;-MMD&nbsp;-nostdinc&nbsp;-P&nbsp;-Umacro&nbsp;-undef&nbsp; 
      <BR>汇编器选项(Assembler&nbsp;Option)&nbsp; <BR>-Wa,option&nbsp; 
      <BR>连接器选项(Linker&nbsp;Option)&nbsp; 
      <BR>-llibrary&nbsp;-nostartfiles&nbsp;-nostdlib&nbsp;-static&nbsp;-shared&nbsp;-symbolic&nbsp;-Xlinker&nbsp;option&nbsp;-Wl,option&nbsp;-u&nbsp;symbol&nbsp; 
      <BR>目录选项(Directory&nbsp;Option)&nbsp; 
      <BR>-Bprefix&nbsp;-Idir&nbsp;-I-&nbsp;-Ldir&nbsp; 
      <BR>目标机选项(Target&nbsp;Option)&nbsp; 
      <BR>-b&nbsp;machine&nbsp;-V&nbsp;version&nbsp; 
      <BR>配置相关选项(Configuration&nbsp;Dependent&nbsp;Option)&nbsp; 
      <BR>M680x0&nbsp;选项&nbsp; 
      <BR>-m68000&nbsp;-m68020&nbsp;-m68020-40&nbsp;-m68030&nbsp;-m68040&nbsp;-m68881&nbsp;-mbitfield&nbsp;-mc68000&nbsp;-mc68020&nbsp;-mfpa&nbsp;-mnobitfield&nbsp;-mrtd&nbsp;-mshort&nbsp;-msoft-float&nbsp; 
      <BR>VAX选项&nbsp; <BR>-mg&nbsp;-mgnu&nbsp;-munix&nbsp; <BR><BR>SPARC选项&nbsp; 
      <BR>-mepilogue&nbsp;-mfpu&nbsp;-mhard-float&nbsp;-mno-fpu&nbsp;-mno-epilogue&nbsp;-msoft-float&nbsp;-msparclite&nbsp;-mv8&nbsp;-msupersparc&nbsp;-mcypress&nbsp; 
      <BR><BR>Convex选项&nbsp; 
      <BR>-margcount&nbsp;-mc1&nbsp;-mc2&nbsp;-mnoargcount&nbsp; 
      <BR><BR>AMD29K选项&nbsp; 
      <BR>-m29000&nbsp;-m29050&nbsp;-mbw&nbsp;-mdw&nbsp;-mkernel-registers&nbsp;-mlarge&nbsp;-mnbw&nbsp;-mnodw&nbsp;-msmall&nbsp;-mstack-check&nbsp;-muser-registers&nbsp; 
      <BR><BR>M88K选项&nbsp; 
      <BR>-m88000&nbsp;-m88100&nbsp;-m88110&nbsp;-mbig-pic&nbsp;-mcheck-zero-division&nbsp;-mhandle-large-shift&nbsp;-midentify-revision&nbsp;-mno-check-zero-division&nbsp;-mno-ocs-debug-info&nbsp;-mno-ocs-frame-position&nbsp;-mno-optimize-arg-area&nbsp;-mno-serialize-volatile&nbsp;-mno-underscores&nbsp;-mocs-debug-info&nbsp;-mocs-frame-position&nbsp;-moptimize-arg-area&nbsp;-mserialize-volatile&nbsp;-mshort-data-num&nbsp;-msvr3&nbsp;-msvr4&nbsp;-mtrap-large-shift&nbsp;-muse-div-instruction&nbsp;-mversion-03.00&nbsp;-mwarn-passed-structs&nbsp; 
      <BR><BR>RS6000选项&nbsp; <BR>-mfp-in-toc&nbsp;-mno-fop-in-toc&nbsp; 
      <BR><BR>RT选项&nbsp; 
      <BR>-mcall-lib-mul&nbsp;-mfp-arg-in-fpregs&nbsp;-mfp-arg-in-gregs&nbsp;-mfull-fp-blocks&nbsp;-mhc-struct-return&nbsp;-min-line-mul&nbsp;-mminimum-fp-blocks&nbsp;-mnohc-struct-return&nbsp; 
      <BR><BR>MIPS选项&nbsp; 
      <BR>-mcpu=cpu&nbsp;type&nbsp;-mips2&nbsp;-mips3&nbsp;-mint64&nbsp;-mlong64&nbsp;-mmips-as&nbsp;-mgas&nbsp;-mrnames&nbsp;-mno-rnames&nbsp;-mgpopt&nbsp;-mno-gpopt&nbsp;-mstats&nbsp;-mno-stats&nbsp;-mmemcpy&nbsp;-mno-memcpy&nbsp;-mno-mips-tfile&nbsp;-mmips-tfile&nbsp;-msoft-float&nbsp;-mhard-float&nbsp;-mabicalls&nbsp;-mno-abicalls&nbsp;-mhalf-pic&nbsp;-mno-half-pic&nbsp;-G&nbsp;num&nbsp;-nocpp&nbsp; 
      <BR><BR>i386选项&nbsp; 
      <BR>-m486&nbsp;-mno-486&nbsp;-msoft-float&nbsp;-mno-fp-ret-in-387&nbsp; 
      <BR><BR>HPPA选项&nbsp; 
      <BR>-mpa-risc-1-0&nbsp;-mpa-risc-1-1&nbsp;-mkernel&nbsp;-mshared-libs&nbsp;-mno-shared-libs&nbsp;-mlong-calls&nbsp;-mdisable-fpregs&nbsp;-mdisable-indexing&nbsp;-mtrailing-colon&nbsp; 
      <BR><BR>i960选项&nbsp; 
      <BR>-mcpu-type&nbsp;-mnumerics&nbsp;-msoft-float&nbsp;-mleaf-procedures&nbsp;-mno-leaf-procedures&nbsp;-mtail-call&nbsp;-mno-tail-call&nbsp;-mcomplex-addr&nbsp;-mno-complex-addr&nbsp;-mcode-align&nbsp;-mno-code-align&nbsp;-mic-compat&nbsp;-mic2.0-compat&nbsp;-mic3.0-compat&nbsp;-masm-compat&nbsp;-mintel-asm&nbsp;-mstrict-align&nbsp;-mno-strict-align&nbsp;-mold-align&nbsp;-mno-old-align&nbsp; 
      <BR><BR>DEC&nbsp;Alpha选项&nbsp; 
      <BR>-mfp-regs&nbsp;-mno-fp-regs&nbsp;-mno-soft-float&nbsp;-msoft-float&nbsp; 
      <BR><BR>System&nbsp;V选项&nbsp; 
      <BR>-G&nbsp;-Qy&nbsp;-Qn&nbsp;-YP,paths&nbsp;-Ym,dir&nbsp; 
      <BR><BR>代码生成选项(Code&nbsp;Generation&nbsp;Option)&nbsp; 
      <BR>-fcall-saved-reg&nbsp;-fcall-used-reg&nbsp;-ffixed-reg&nbsp;-finhibit-size-directive&nbsp;-fnonnull-objects&nbsp;-fno-common&nbsp;-fno-ident&nbsp;-fno-gnu-linker&nbsp;-fpcc-struct-return&nbsp;-fpic&nbsp;-fPIC&nbsp;-freg-struct-return&nbsp;-fshared-data&nbsp;-fshort-enums&nbsp;-fshort-double&nbsp;-fvolatile&nbsp;-fvolatile-global&nbsp;-fverbose-asm&nbsp; 
      <BR><BR>&nbsp;&nbsp; <BR>总体选项(Overall&nbsp;Option) 
      <BR>-x&nbsp;language&nbsp; 
      <BR>明确指出后面输入文件的语言为language&nbsp;(而不是从文件名后缀得到的默认选择).这个选项应用于后面&nbsp;所有的输入文件,直到遇着下一个`-x’选项.&nbsp;language的可选值有`c’,&nbsp;`objective-c’,&nbsp;`c-header’,&nbsp;`c++’,&nbsp;`cpp-output’,&nbsp;`assembler’,和`assembler-with-cpp’.&nbsp; 
      <BR>-x&nbsp;none&nbsp; 
      <BR>关闭任何对语种的明确说明,因此依据文件名后缀处理后面的文件(就象是从未使用过`-x’选项).&nbsp; 
      <BR>如果只操作四个阶段(预处理,编译,汇编,连接)中的一部分,可以使用`-x’选项(或文件名后缀)告诉&nbsp;gcc从哪里开始,用`-c’,&nbsp;`-S’,或`-E’选项告诉gcc到&nbsp;哪里结束.注意,某些选项组合(例如,&nbsp;`-x&nbsp;cpp-output&nbsp;-E’)使gcc不作任何事情.&nbsp; 
      <BR><BR>-c&nbsp; <BR>编译或汇编源文件,但是不作连接.编译器输出对应于源文件的目标文件.&nbsp; 
      <BR>缺省情况下,&nbsp;GCC通过用`.o’替换源文件名后缀`.c’,&nbsp;`.i’,&nbsp;`.s’,等等,产生目标文件名.可以使用-o选项选择其他名字.&nbsp; 
      <BR><BR>GCC忽略-c选项后面任何无法识别的输入文件(他们不需要编译或汇编).&nbsp; <BR><BR>-S&nbsp; 
      <BR>编译后即停止,不进行汇编.对于每个输入的非汇编语言文件,输出文件是汇编语言文件.&nbsp; 
      <BR>缺省情况下,&nbsp;GCC通过用`.o’替换源文件名后缀`.c’,&nbsp;`.i’,等等,产生&nbsp;目标文件名.可以使用-o选项选择其他名字.&nbsp; 
      <BR><BR>GCC忽略任何不需要编译的输入文件.&nbsp; <BR><BR>-E&nbsp; 
      <BR>预处理后即停止,不进行编译.预处理后的代码送往标准输出.&nbsp; <BR>GCC忽略任何不需要预处理的输入文件.&nbsp; 
      <BR><BR>-o&nbsp;file&nbsp; 
      <BR>指定输出文件为file.该选项不在乎GCC产生什么输出,无论是可执行文件,目标文件,汇编文件还是&nbsp;预处理后的C代码.&nbsp; 
      <BR>由于只能指定一个输出文件,因此编译多个输入文件时,使用`-o’选项没有意义,除非输出一个可执行文件.&nbsp; 
      <BR><BR>如果没有使用`-o’选项,默认的输出结果是:可执行文件为`a.out’,&nbsp;`source.suffix&nbsp;’的目标文件是`source.o’,汇编文件是&nbsp;`source.s’,而预处理后的C源代码送往标准输出.&nbsp; 
      <BR><BR>-v&nbsp; <BR>(在标准错误)显示执行编译阶段的命令.同时显示编译器驱动程序,预处理器,编译器的版本号.&nbsp; 
      <BR>-pipe&nbsp; 
      <BR>在编译过程的不同阶段间使用管道而非临时文件进行通信.这个选项在某些系统上无法工作,因为那些系统的&nbsp;汇编器不能从管道读取数据.&nbsp;GNU的汇编器没有这个问题.&nbsp; 
      <BR><BR><BR>语言选项(LANGUAGE&nbsp;OPTIONS) 
      <BR>下列选项控制编译器能够接受的C&nbsp;"方言":&nbsp; <BR>-ansi&nbsp; 
      <BR>支持符合ANSI标准的C程序.&nbsp; 
      <BR>这样就会关闭GNU&nbsp;C中某些不兼容ANSI&nbsp;C的特性,例如asm,&nbsp;inline和&nbsp;typeof关键字,以及诸如unix和vax这些表明当前系统类型的预定义宏.同时开启&nbsp;不受欢迎和极少使用的ANSI&nbsp;trigraph特性,以及禁止`$’成为标识符的一部分.&nbsp; 
      <BR><BR><BR>尽管使用了`-ansi’选项,下面这些可选的关键字,&nbsp;__asm__,&nbsp;__extension__,&nbsp;__inline__和__typeof__仍然有效.你当然不会把&nbsp;他们用在ANSI&nbsp;C程序中,但可以把他们放在头文件里,因为编译包含这些头文件的程序时,可能会指定&nbsp;`-ansi’选项.另外一些预定义宏,如__unix__和__vax__,无论有没有使用&nbsp;`-ansi’选项,始终有效.&nbsp; 
      <BR><BR><BR>使用`-ansi’选项不会自动拒绝编译非ANSI程序,除非增加`-pedantic’选项作为&nbsp;`-ansi’选项的补充.&nbsp; 
      <BR><BR><BR>使用`-ansi’选项的时候,预处理器会预定义一个__STRICT_ANSI__宏.有些头文件&nbsp;关注此宏,以避免声明某些函数,或者避免定义某些宏,这些函数和宏不被ANSI标准调用;这样就不会干扰在其他地方&nbsp;使用这些名字的程序了.&nbsp; 
      <BR><BR><BR>-fno-asm&nbsp; 
      <BR>不把asm,&nbsp;inline或typeof当作关键字,因此这些词可以用做标识符.用&nbsp;__asm__,&nbsp;__inline__和__typeof__能够替代他们.&nbsp;`-ansi’&nbsp;隐含声明了`-fno-asm’.&nbsp; 
      <BR>-fno-builtin&nbsp; 
      <BR>不接受不是两个下划线开头的内建函数(built-in&nbsp;function).目前受影响的函数有_exit,&nbsp;abort,&nbsp;abs,&nbsp;alloca,&nbsp;cos,&nbsp;exit,&nbsp;fabs,&nbsp;labs,&nbsp;memcmp,&nbsp;memcpy,&nbsp;sin,&nbsp;sqrt,&nbsp;strcmp,&nbsp;strcpy,和strlen.&nbsp; 
      <BR>`-ansi’选项能够阻止alloca和_exit成为内建函数.&nbsp; <BR><BR><BR>-fhosted&nbsp; 
      <BR>按宿主环境编译;他隐含声明了`-fbuiltin’选项,而且警告不正确的main函数声明.&nbsp; 
      <BR>-ffreestanding&nbsp; 
      <BR>按独立环境编译;他隐含声明了`-fno-builtin’选项,而且对main函数没有特别要求.&nbsp; 
      <BR>(译注:宿主环境(hosted&nbsp;environment)下所有的标准库可用,&nbsp;main函数返回一个int值,典型例子是除了&nbsp;内核以外几乎所有的程序.对应的独立环境(freestanding&nbsp;environment)不存在标准库,程序入口也不一定是&nbsp;main,最明显的例子就是操作系统内核.详情参考gcc网站最近的资料)&nbsp; 
      <BR><BR><BR>-fno-strict-prototype&nbsp; 
      <BR>对于没有参数的函数声明,例如`int&nbsp;foo&nbsp;();’,按C风格处理---即不说明参数个数或类型.&nbsp;(仅针对C++).正常情况下,这样的函数foo在C++中意味着参数为空.&nbsp; 
      <BR><BR>-trigraphs&nbsp; 
      <BR>支持ANSI&nbsp;C&nbsp;trigraphs.&nbsp;`-ansi’选项隐含声明了`-trigraphs’.&nbsp; 
      <BR><BR>-traditional&nbsp; 
      <BR>试图支持传统C编译器的某些方面.详见GNU&nbsp;C手册,我们已经把细节清单从这里删除,这样当内容过时后,人们也不会&nbsp;埋怨我们.&nbsp; 
      <BR>除了一件事:对于C++程序(不是C),&nbsp;`-traditional’选项带来一个附加效应,允许对&nbsp;this赋值.他和`-fthis-is-variable’选项的效果一样.&nbsp; 
      <BR><BR><BR>-traditional-cpp&nbsp; 
      <BR>试图支持传统C预处理器的某些方面.特别是上面提到有关预处理器的内容,但是不包括&nbsp;`-traditional’选项的其他效应.&nbsp; 
      <BR><BR>-fdollars-in-identifiers&nbsp; 
      <BR>允许在标识符(identifier)中使用`$’字符(仅针对C++).你可以指定&nbsp;`-fno-dollars-in-identifiers’选项显明禁止使用`$’符.&nbsp;(GNU&nbsp;C++在某些&nbsp;目标系统缺省允许`$’符,但不是所有系统.)&nbsp; 
      <BR><BR>-fenum-int-equiv&nbsp; 
      <BR>允许int类型到枚举类型(enumeration)的隐式转换(仅限于C++).正常情况下GNU&nbsp;C++允许从&nbsp;enum到int的转换,反之则不行.&nbsp; 
      <BR><BR>-fexternal-templates&nbsp; 
      <BR>为模板声明(template&nbsp;declaration)产生较小的代码(仅限于C++),方法是对于每个模板函数&nbsp;(template&nbsp;function),只在定义他们的地方生成一个副本.想要成功使用这个选项,你必须在所有使用模板的&nbsp;文件中,标记`#pragma&nbsp;implementation’&nbsp;(定义)或`#pragma&nbsp;interface’&nbsp;(声明).&nbsp; 
      <BR>当程序用`-fexternal-templates’编译时,模板实例(template&nbsp;instantiation)&nbsp;全部是外部类型.你必须让需要的实例在实现文件中出现.可以通过typedef实现这一点,他引用所需的每个&nbsp;实例.相对应的,如果编译时使用缺省选项`-fno-external-templates’,所有模板实例明确的设为内置.&nbsp; 
      <BR><BR><BR>-fall-virtual&nbsp; 
      <BR>所有可能的成员函数默认为虚函数.所有的成员函数(除了构造子函数和new或delete&nbsp;成员操作符)视为所在类的虚函数.&nbsp; 
      <BR>这不表明每次调用成员函数都将通过内部虚函数表.有些情况下,编译器能够判断出可以直接调用某个虚函数;这时就&nbsp;直接调用.&nbsp; 
      <BR><BR><BR>-fcond-mismatch&nbsp; 
      <BR>允许条件表达式的第二和第三个参数的类型不匹配.这种表达式的值是void.&nbsp; 
      <BR><BR>-fthis-is-variable&nbsp; 
      <BR>允许对this赋值(仅对C++).合并用户自定义的自由存储管理机制到C++后,使可赋值的&nbsp;`this’显得不合时宜.因此,默认情况下,类成员函数内部对this赋值是无效操作.然而为了&nbsp;向后兼容,你可以通过`-fthis-is-variable’选项使这种操作有效.&nbsp; 
      <BR><BR>-funsigned-char&nbsp; 
      <BR>把char定义为无符号类型,如同unsigned&nbsp;char.&nbsp; 
      <BR>各种机器都有自己缺省的char类型.既可能是unsigned&nbsp;char也可能是signed&nbsp;char&nbsp;.&nbsp; 
      <BR><BR>理想情况下,当依赖于数据的符号性时,一个可移植程序总是应该使用signed&nbsp;char或unsigned&nbsp;char.但是许多程序已经写成只用简单的char,并且期待这是有符号数(或者无符号数,具体情况取决于&nbsp;编写程序的目标机器).这个选项,和它的反义选项,使那样的程序工作在对应的默认值上.&nbsp; 
      <BR><BR>char的类型始终应该明确定义为signed&nbsp;char或unsigned&nbsp;char,即使&nbsp;它表现的和其中之一完全一样.&nbsp; 
      <BR><BR><BR>-fsigned-char&nbsp; 
      <BR>把char定义为有符号类型,如同signed&nbsp;char.&nbsp; 
      <BR>这个选项等同于`-fno-unsigned-char’,他是the&nbsp;negative&nbsp;form&nbsp;of&nbsp;`-funsigned-char’的相反选项.同样,&nbsp;`-fno-signed-char’等价于&nbsp;`-funsigned-char’.&nbsp; 
      <BR><BR><BR>-fsigned-bitfields&nbsp; <BR>-funsigned-bitfields&nbsp; 
      <BR>-fno-signed-bitfields&nbsp; <BR>-fno-unsigned-bitfields&nbsp; 
      <BR>如果没有明确声明`signed’或`unsigned’修饰符,这些选项用来定义有符号位域&nbsp;(bitfield)或无符号位域.缺省情况下,位域是有符号的,因为他们继承的基本整数类型,如int,是&nbsp;有符号数.&nbsp; 
      <BR>然而,如果指定了`-traditional’选项,位域永远是无符号数.&nbsp; 
      <BR><BR><BR>-fwritable-strings&nbsp; 
      <BR>把字符串常量存储到可写数据段,而且不做特别对待.这是为了兼容一些老程序,他们假设字符串常量是可写的.&nbsp;`-traditional’选项也有相同效果.&nbsp; 
      <BR>篡改字符串常量是一个非常糟糕的想法;&nbsp;``常量’’就应该是常量.&nbsp; <BR><BR><BR>&nbsp;&nbsp; 
      <BR>预处理器选项(Preprocessor&nbsp;Option) 
      <BR>下列选项针对C预处理器,预处理器用在正式编译以前,对C&nbsp;源文件进行某种处理.&nbsp; 
      <BR>如果指定了`-E’选项,&nbsp;GCC只进行预处理工作.下面的某些选项必须和`-E’选项一起才&nbsp;有意义,因为他们的输出结果不能用于编译.&nbsp; 
      <BR><BR><BR>-include&nbsp;file&nbsp; 
      <BR>在处理常规输入文件之前,首先处理文件file,其结果是,文件file的内容先得到编译.&nbsp;命令行上任何`-D’和`-U’选项永远在`-include&nbsp;file’之前处理,&nbsp;无论他们在命令行上的顺序如何.然而`-include’和`-imacros’选项按书写顺序处理.&nbsp; 
      <BR><BR>-imacros&nbsp;file&nbsp; 
      <BR>在处理常规输入文件之前,首先处理文件file,但是忽略输出结果.由于丢弃了文件file的&nbsp;输出内容,&nbsp;`-imacros&nbsp;file’选项的唯一效果就是使文件file中的宏定义生效,&nbsp;可以用于其他输入文件.在处理`-imacrosfile’选项之前,预处理器首先处理`-D’&nbsp;和`-U’选项,并不在乎他们在命令行上的顺序.然而`-include’和&nbsp;`-imacros’选项按书写顺序处理.&nbsp; 
      <BR><BR>-idirafter&nbsp;dir&nbsp; 
      <BR>把目录dir添加到第二包含路径中.如果某个头文件在主包含路径(用`-I’添加的路径)中没有&nbsp;找到,预处理器就搜索第二包含路径.&nbsp; 
      <BR><BR>-iprefix&nbsp;prefix&nbsp; 
      <BR>指定prefix作为后续`-iwithprefix’选项的前缀.&nbsp; 
      <BR><BR>-iwithprefix&nbsp;dir&nbsp; 
      <BR>把目录添加到第二包含路径中.目录名由prefix和dir合并而成,这里&nbsp;prefix被先前的`-iprefix’选项指定.&nbsp; 
      <BR><BR>-nostdinc&nbsp; 
      <BR>不要在标准系统目录中寻找头文件.只搜索`-I’选项指定的目录(以及当前目录,如果合适).&nbsp; 
      <BR>结合使用`-nostdinc’和`-I-’选项,你可以把包含文件搜索限制在显式指定的目录.&nbsp; 
      <BR><BR><BR>-nostdinc++&nbsp; 
      <BR>不要在C++专用标准目录中寻找头文件,但是仍然搜索其他标准目录.&nbsp;(当建立`libg++’时使用&nbsp;这个选项.)&nbsp; 
      <BR>-undef&nbsp; <BR>不要预定义任何非标准宏.&nbsp;(包括系统结构标志).&nbsp; <BR><BR>-E&nbsp; 
      <BR>仅运行C预处理器.预处理所有指定的C源文件,结果送往标准输出或指定的输出文件.&nbsp; <BR><BR>-C&nbsp; 
      <BR>告诉预处理器不要丢弃注释.配合`-E’选项使用.&nbsp; <BR><BR>-P&nbsp; 
      <BR>告诉预处理器不要产生`#line’命令.配合`-E’选项使用.&nbsp; 
      <BR><BR>-M&nbsp;&nbsp;[&nbsp;-MG&nbsp;]&nbsp; 
      <BR>告诉预处理器输出一个适合make的规则,用于描述各目标文件的依赖关系.对于每个源文件,预处理器输出&nbsp;一个make规则,该规则的目标项(target)是源文件对应的目标文件名,依赖项(dependency)是源文件中&nbsp;`#include引用的所有文件.生成的规则可以是单行,但如果太长,就用`\’-换行符续成多行.规则&nbsp;显示在标准输出,不产生预处理过的C程序.&nbsp; 
      <BR>`-M’隐含了`-E’选项.&nbsp; 
      <BR><BR>`-MG’要求把缺失的头文件按存在对待,并且假定他们和源程序文件在同一目录下.必须和&nbsp;`-M’选项一起用.&nbsp; 
      <BR><BR><BR>-MM&nbsp;&nbsp;[&nbsp;-MG&nbsp;]&nbsp; 
      <BR>和`-M’选项类似,但是输出结果仅涉及用户头文件,象这样`#include&nbsp;file"’.忽略系统头文件如`#include&nbsp;&lt;file&gt;’.&nbsp; 
      <BR><BR>-MD&nbsp; 
      <BR>和`-M’选项类似,但是把依赖信息输出在文件中,文件名通过把输出文件名末尾的`.o’替换为&nbsp;`.d’产生.同时继续指定的编译工作---`-MD’不象`-M’那样阻止正常的编译任务.&nbsp; 
      <BR>Mach的实用工具`md’能够合并`.d’文件,产生适用于`make’命令的单一的&nbsp;依赖文件.&nbsp; 
      <BR><BR><BR>-MMD&nbsp; <BR>和`-MD’选项类似,但是输出结果仅涉及用户头文件,忽略系统头文件.&nbsp; 
      <BR><BR>-H&nbsp; <BR>除了其他普通的操作,&nbsp;GCC显示引用过的头文件名.&nbsp; 
      <BR><BR>-Aquestion(answer)&nbsp; 
      <BR>如果预处理器做条件测试,如`#if&nbsp;#question(answer)’,该选项可以断言(Assert)&nbsp;question的答案是answer.&nbsp;-A-’关闭一般用于描述目标机的标准断言.&nbsp; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -