📄 gnu gcc 手册 1.mht
字号:
<DT><B><FONT face=3D"Courier New" size=3D2>-pipe</FONT></B>=20
<DD><FONT =
size=3D2>在编译过程的不同=
阶段间使用管道而非&=
#20020;时文件进行通信</FONT><FO=
NT face=3D"Courier New"=20
size=3D2>.</FONT><FONT =
size=3D2>这个选项在某些系=
统上无法工作</FONT><FONT =
face=3D"Courier New"=20
size=3D2>,</FONT><FONT =
size=3D2>因为那些系统的 =
汇编器不能从管道读&=
#21462;数据</FONT><FONT=20
face=3D"Courier New" size=3D2>. GNU</FONT><FONT =
size=3D2>的汇编器没有这个=
问题</FONT><FONT=20
face=3D"Courier New" size=3D2>.</FONT> </DD></DL>
<P>
<H2><FONT size=3D2>语言选项</FONT><FONT =
face=3D"Courier New" size=3D2>(LANGUAGE=20
OPTIONS)</FONT></H2><FONT =
size=3D2>下列选项控制编译=
器能够接受的</FONT><FONT =
face=3D"Courier New"=20
size=3D2>C "</FONT><FONT size=3D2>方言</FONT><FONT =
face=3D"Courier New" size=3D2>":</FONT>=20
<DL compact>
<DT><B><FONT face=3D"Courier New" size=3D2>-ansi</FONT></B>=20
<DD><FONT size=3D2>支持符合</FONT><FONT =
face=3D"Courier New" size=3D2>ANSI</FONT><FONT=20
size=3D2>标准的</FONT><FONT face=3D"Courier New" =
size=3D2>C</FONT><FONT=20
size=3D2>程序</FONT><FONT face=3D"Courier New" =
size=3D2>.</FONT>=20
<P><FONT =
size=3D2>这样就会关闭</FONT><FONT =
face=3D"Courier New" size=3D2>GNU C</FONT><FONT=20
size=3D2>中某些不兼容</FONT><FONT =
face=3D"Courier New" size=3D2>ANSI C</FONT><FONT=20
size=3D2>的特性</FONT><FONT face=3D"Courier New" =
size=3D2>,</FONT><FONT=20
size=3D2>例如</FONT><FONT face=3D"Courier New" =
size=3D2><B>asm</B>,=20
<B>inline</B></FONT><FONT size=3D2>和 </FONT><FONT =
face=3D"Courier New"=20
size=3D2><B>typeof</B></FONT><FONT =
size=3D2>关键字</FONT><FONT face=3D"Courier New"=20
size=3D2>,</FONT><FONT =
size=3D2>以及诸如</FONT><FONT face=3D"Courier =
New"=20
size=3D2><B>unix</B></FONT><FONT size=3D2>和</FONT><FONT =
face=3D"Courier New"=20
size=3D2><B>vax</B></FONT><FONT =
size=3D2>这些表明当前系统=
类型的预定义宏</FONT><FONT=20
face=3D"Courier New" size=3D2>.</FONT><FONT =
size=3D2>同时开启 =
不受欢迎和极少使用&=
#30340;</FONT><FONT=20
face=3D"Courier New" size=3D2>ANSI trigraph</FONT><FONT =
size=3D2>特性</FONT><FONT=20
face=3D"Courier New" size=3D2>,</FONT><FONT =
size=3D2>以及禁止</FONT><FONT=20
face=3D"Courier New" size=3D2>`<B>$</B>'</FONT><FONT =
size=3D2>成为标识符的一部=
分</FONT><FONT=20
face=3D"Courier New" size=3D2>.</FONT>=20
<P>
<P><FONT size=3D2>尽管使用了</FONT><FONT =
face=3D"Courier New"=20
size=3D2>`<B>-ansi</B>'</FONT><FONT =
size=3D2>选项</FONT><FONT face=3D"Courier New"=20
size=3D2>,</FONT><FONT =
size=3D2>下面这些可选的关=
键字</FONT><FONT face=3D"Courier New" size=3D2>,=20
<B>__asm__</B>, <B>__extension__</B>, <B>__inline__</B></FONT><FONT=20
size=3D2>和</FONT><FONT face=3D"Courier New" =
size=3D2><B>__typeof__</B></FONT><FONT=20
size=3D2>仍然有效</FONT><FONT face=3D"Courier =
New" size=3D2>.</FONT><FONT =
size=3D2>你当然不会把=20
他们用在</FONT><FONT face=3D"Courier New" =
size=3D2>ANSI C</FONT><FONT=20
size=3D2>程序中</FONT><FONT face=3D"Courier New" =
size=3D2>,</FONT><FONT=20
=
size=3D2>但可以把他们放在=
头文件里</FONT><FONT face=3D"Courier New" =
size=3D2>,</FONT><FONT=20
=
size=3D2>因为编译包含这些=
头文件的程序时</FONT><FONT =
face=3D"Courier New" size=3D2>,</FONT><FONT=20
size=3D2>可能会指定 </FONT><FONT =
face=3D"Courier New" size=3D2>`<B>-ansi</B>'</FONT><FONT=20
size=3D2>选项</FONT><FONT face=3D"Courier New" =
size=3D2>.</FONT><FONT=20
=
size=3D2>另外一些预定义宏=
</FONT><FONT face=3D"Courier New" size=3D2>,</FONT><FONT=20
size=3D2>如</FONT><FONT face=3D"Courier New" =
size=3D2><B>__unix__</B></FONT><FONT=20
size=3D2>和</FONT><FONT face=3D"Courier New" =
size=3D2><B>__vax__</B>,</FONT><FONT=20
size=3D2>无论有没有使用 =
</FONT><FONT face=3D"Courier New"=20
size=3D2>`<B>-ansi</B>'</FONT><FONT =
size=3D2>选项</FONT><FONT face=3D"Courier New"=20
size=3D2>,</FONT><FONT =
size=3D2>始终有效</FONT><FONT face=3D"Courier =
New"=20
size=3D2>.</FONT>=20
<P>
<P><FONT size=3D2>使用</FONT><FONT face=3D"Courier New"=20
size=3D2>`<B>-ansi</B>'</FONT><FONT =
size=3D2>选项不会自动拒绝=
编译非</FONT><FONT=20
face=3D"Courier New" size=3D2>ANSI</FONT><FONT =
size=3D2>程序</FONT><FONT=20
face=3D"Courier New" size=3D2>,</FONT><FONT =
size=3D2>除非增加</FONT><FONT=20
face=3D"Courier New" size=3D2>`<B>-pedantic</B>'</FONT><FONT =
size=3D2>选项作为=20
</FONT><FONT face=3D"Courier New" size=3D2>`<B>-ansi</B>'</FONT><FONT=20
size=3D2>选项的补充</FONT><FONT =
face=3D"Courier New" size=3D2>.</FONT>=20
<P>
<P><FONT size=3D2>使用</FONT><FONT face=3D"Courier New"=20
size=3D2>`<B>-ansi</B>'</FONT><FONT =
size=3D2>选项的时候</FONT><FONT =
face=3D"Courier New"=20
size=3D2>,</FONT><FONT =
size=3D2>预处理器会预定义=
一个</FONT><FONT face=3D"Courier New"=20
size=3D2><B>__STRICT_ANSI__</B></FONT><FONT =
size=3D2>宏</FONT><FONT=20
face=3D"Courier New" size=3D2>.</FONT><FONT =
size=3D2>有些头文件 =
关注此宏</FONT><FONT=20
face=3D"Courier New" size=3D2>,</FONT><FONT =
size=3D2>以避免声明某些函=
数</FONT><FONT=20
face=3D"Courier New" size=3D2>,</FONT><FONT =
size=3D2>或者避免定义某些=
宏</FONT><FONT=20
face=3D"Courier New" size=3D2>,</FONT><FONT =
size=3D2>这些函数和宏不被=
</FONT><FONT=20
face=3D"Courier New" size=3D2>ANSI</FONT><FONT =
size=3D2>标准调用</FONT><FONT=20
face=3D"Courier New" size=3D2>;</FONT><FONT =
size=3D2>这样就不会干扰在=
其他地方=20
=
使用这些名字的程序&=
#20102;</FONT><FONT face=3D"Courier New" size=3D2>.</FONT>=20
<P></P>
<DT><B><FONT face=3D"Courier New" size=3D2>-fno-asm</FONT></B>=20
<DD><FONT size=3D2>不把</FONT><FONT face=3D"Courier New" =
size=3D2><B>asm</B>,=20
<B>inline</B></FONT><FONT size=3D2>或</FONT><FONT =
face=3D"Courier New"=20
size=3D2><B>typeof</B></FONT><FONT =
size=3D2>当作关键字</FONT><FONT =
face=3D"Courier New"=20
size=3D2>,</FONT><FONT =
size=3D2>因此这些词可以用=
做标识符</FONT><FONT face=3D"Courier New"=20
size=3D2>.</FONT><FONT size=3D2>用 </FONT><FONT face=3D"Courier =
New"=20
size=3D2><B>__asm__</B>, <B>__inline__</B></FONT><FONT =
size=3D2>和</FONT><FONT=20
face=3D"Courier New" size=3D2><B>__typeof__</B></FONT><FONT=20
size=3D2>能够替代他们</FONT><FONT =
face=3D"Courier New" size=3D2>. `<B>-ansi</B>'=20
</FONT><FONT =
size=3D2>隐含声明了</FONT><FONT =
face=3D"Courier New"=20
size=3D2>`<B>-fno-asm</B>'.</FONT>=20
<DT><B><FONT face=3D"Courier New" size=3D2>-fno-builtin</FONT></B>=20
<DD><FONT =
size=3D2>不接受不是两个下=
划线开头的内建函数<=
/FONT><FONT face=3D"Courier New"=20
size=3D2>(built-in function).</FONT><FONT =
size=3D2>目前受影响的函数=
有</FONT><FONT=20
face=3D"Courier New" size=3D2><B>_exit</B>, <B>abort</B>, <B>abs</B>,=20
<B>alloca</B>, <B>cos</B>, <B>exit</B>, <B>fabs</B>, <B>labs</B>,=20
<B>memcmp</B>, <B>memcpy</B>, <B>sin</B>, <B>sqrt</B>, <B>strcmp</B>,=20
<B>strcpy</B>,</FONT><FONT size=3D2>和</FONT><FONT =
face=3D"Courier New"=20
size=3D2><B>strlen</B>.</FONT>=20
<P><FONT face=3D"Courier New" size=3D2>`<B>-ansi</B>'</FONT><FONT=20
size=3D2>选项能够阻止</FONT><FONT =
face=3D"Courier New" size=3D2><B>alloca</B></FONT><FONT=20
size=3D2>和</FONT><FONT face=3D"Courier New" =
size=3D2><B>_exit</B></FONT><FONT=20
size=3D2>成为内建函数</FONT><FONT =
face=3D"Courier New" size=3D2>.</FONT>=20
<P></P>
<DT><B><FONT face=3D"Courier New" size=3D2>-fhosted</FONT></B>=20
<DD><FONT =
size=3D2>按宿主环境编译</FONT><=
FONT face=3D"Courier New" size=3D2>;</FONT><FONT=20
size=3D2>他隐含声明了</FONT><FONT =
face=3D"Courier New"=20
size=3D2>`<B>-fbuiltin</B>'</FONT><FONT =
size=3D2>选项</FONT><FONT face=3D"Courier New"=20
size=3D2>,</FONT><FONT =
size=3D2>而且警告不正确的=
</FONT><FONT face=3D"Courier New"=20
size=3D2><B>main</B></FONT><FONT =
size=3D2>函数声明</FONT><FONT face=3D"Courier =
New"=20
size=3D2>.</FONT>=20
<DT><B><FONT face=3D"Courier New" size=3D2>-ffreestanding</FONT></B>=20
<DD><FONT =
size=3D2>按独立环境编译</FONT><=
FONT face=3D"Courier New" size=3D2>;</FONT><FONT=20
size=3D2>他隐含声明了</FONT><FONT =
face=3D"Courier New"=20
size=3D2>`<B>-fno-builtin</B>'</FONT><FONT =
size=3D2>选项</FONT><FONT=20
face=3D"Courier New" size=3D2>,</FONT><FONT =
size=3D2>而且对</FONT><FONT=20
face=3D"Courier New" size=3D2><B>main</B></FONT><FONT =
size=3D2>函数没有特别要求=
</FONT><FONT=20
face=3D"Courier New" size=3D2>.</FONT>=20
<P><FONT face=3D"Courier New" size=3D2>(</FONT><FONT =
size=3D2>译注</FONT><FONT=20
face=3D"Courier New" size=3D2>:</FONT><FONT =
size=3D2>宿主环境</FONT><FONT=20
face=3D"Courier New" size=3D2>(hosted environment)</FONT><FONT=20
=
size=3D2>下所有的标准库可=
用</FONT><FONT face=3D"Courier New" size=3D2>, main</FONT><FONT=20
size=3D2>函数返回一个</FONT><FONT =
face=3D"Courier New" size=3D2>int</FONT><FONT=20
size=3D2>值</FONT><FONT face=3D"Courier New" =
size=3D2>,</FONT><FONT =
size=3D2>典型例子是除了=20
=
内核以外几乎所有的&=
#31243;序</FONT><FONT face=3D"Courier New" size=3D2>.</FONT><FONT=20
=
size=3D2>对应的独立环境</FONT><=
FONT face=3D"Courier New" size=3D2>(freestanding=20
environment)</FONT><FONT =
size=3D2>不存在标准库</FONT><FONT =
face=3D"Courier New"=20
size=3D2>,</FONT><FONT =
size=3D2>程序入口也不一定=
是 </FONT><FONT face=3D"Courier New"=20
size=3D2>main,</FONT><FONT =
size=3D2>最明显的例子就是=
操作系统内核</FONT><FONT =
face=3D"Courier New"=20
size=3D2>.</FONT><FONT =
size=3D2>详情参考</FONT><FONT face=3D"Courier =
New"=20
size=3D2>gcc</FONT><FONT =
size=3D2>网站最近的资料</FONT><=
FONT face=3D"Courier New"=20
size=3D2>)</FONT>=20
<P></P>
<DT><B><FONT face=3D"Courier New" =
size=3D2>-fno-strict-prototype</FONT></B>=20
<DD><FONT =
size=3D2>对于没有参数的函=
数声明</FONT><FONT face=3D"Courier New"=20
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -