学习GCC / G ++编译器?

这个笔记说:

-ansi :告诉编译器实现ANSI语言选项。 这关闭了与ANSI标准不兼容的GCC的某些“特征”。

-pedantic :与-ansi一起使用,这告诉编译器严格遵守ANSI标准,拒绝任何不合规的代码。

首先要做的是:

  • GCC / G ++编译器的-pedantic-ansi选项的用途是什么(我无法理解上面的描述)?
  • 任何人都可以告诉我使用这两种选择的正确情况吗?
  • 我应该什么时候使用它们?
  • 它们很重要吗?

  • GCC编译器总是试图编译你的程序,如果这是可能的话。 但是,在某些情况下,C和C ++标准指定禁止某些扩展。 符合编译器如gcc或g ++必须在遇到这些扩展时发布诊断。 例如,gcc编译器的-pedantic选项会导致gcc在这种情况下发出警告。 使用更严格-pedantic-errors选项将这些诊断警告转换为会导致编译失败的错误。 只有那些需要由符合编译器标记的非ISO结构才会产生警告或错误。


    我一直在编码中使用它。

    -ansi标志等同于-std=c89 。 如上所述,它关闭了GCC的一些扩展。 添加-pedantic会关闭更多扩展并生成更多警告。 例如,如果您的字符串文字长度超过509个字符,则由于它超出了C89标准所要求的最小限制,所以-pedantic警告。 也就是说,每个C89编译器都必须接受长度为509的字符串; 他们被允许接受更长的时间,但如果你是迂腐的,即使允许编译器接受更长的字符串,并且没有迂腐的警告,GCC也会接受它们,使用更长的字符串是不可移植的。


    基本上,它会使您的代码在其他也实现ANSI标准的编译器下编译起来更容易,并且,如果您在其他操作系统/平台下小心使用了库/ api调用。

    第一个关闭GCC的特定功能。 (-ansi)第二个,会抱怨任何不符合标准的东西(不仅仅是GCC的特定功能,也包括你的构造)。(-pedantic)。

    链接地址: http://www.djcxy.com/p/86353.html

    上一篇: pedantic in GCC/G++ compiler?

    下一篇: Enforcing the C++98 standard in gcc