gcc编译器小知识

来源:互联网 发布:mac网页怎么添加收藏 编辑:程序博客网 时间:2024/05/16 16:04
q:gcc的全称是什么:
a: gcc 是 gnu compiler collecti 编译器套装),它不仅仅只是编译c语言的编译器,它提供了对c、面向对象的c(object c), c++, java, ada 语言的编译服务。过去有一段时间,它被成为gnu c compiler是因为它最初的开发目的的确是只提供了c编译功能,但是现在已经不在是这样了。

q:gcc 和g++什么关系
a: 事实上只有一个c++编译器,那就是g++。g++不仅仅是一个c++预处理器,而是一个实实在在的c++编译器。由于它的名字 gnu c++ compiler 也能缩写成gcc,所以有时候有人叫它gcc也并不错。而我们通常所说的gcc是一个编译器套装,gcc命令只是一个调用各个实际编译器的快捷方式而已。

q:gcc所支持的c语言规范有哪些
a: 目前主要的c语言规范有c89(c90), c95(94)和c99。c89是最早的c语言规范,于89年提出,90年先由美国国家标准局推出ansi版本,后来被接纳为iso国际标准 (iso/iec 9899:1990),因而有时也称为c90。但在94和96年分别对c90进行了两次错误修正,gcc支持的是修正后的c89(90)版本的c语言规范。在95年提出过对90版规范的修订案,称为 c95或者amd1。gcc也支持c95规范。最新的一次c规范修订在99年制定(iso/iec 9899:1999),即常称的c99规范。在2001年对c99的错误进行了修正,gcc支持的修正后的c99规范,但是到目前为止,gcc还没有完成对c99规范的完全支持。

在默认设置下,gcc对c语言进行了一些自己的扩展。在不加语言设置参数的情况下,gcc使用c89规范和自己的一些扩展。在将来如果gcc完成了对c99的全面支持,可能默认会使用c99规范加gcc自己的扩展。

gcc下的语言规范设置:
-std=iso9899:1990,-ansi或-std=c89 (三者完全等同)来指定完全按照c89规范,而禁止gcc对c语言的扩展。
-std=iso9899:199409 使用c95规范
-std=c99 或者 -std=iso9899:1999 使用c99规范。
-std=gnu89 使用c89规范加上gcc自己的扩展(目前默认)
-std=gnu99 使用c99规范加上gcc自己的扩展

gcc支持传统C语言(也就是K&R C),包括一些处于规范之外但常见且使用的C语法。在编译时,指定'-traditional'选项即可。另外该选项还支持GNU对C语言的扩展

gcc 的'-ansi'选项'-ansi'支持符合ANSI标准的C程序,这样就会关闭GNU C中某些不兼容ANSI C的特性,例如asm, inline和 typeof关键字,以及诸如unix和vax这些表明当前系统类型的预定义宏,同时开启 不受欢迎和极少使用的ANSI trigraph特性,以及禁止`$'成为标识符的一部分。

尽管使用了'-ansi'选项,下面这些可选的关键字, __asm__, __extension__, __inline__和__typeof__仍然有效.你当然不会把 他们用在ANSI C程序中,但可以把他们放在头文件里,因为编译包含这些头文件的程序时,可能会指定 `-ansi'选项。另外一些预定义宏,如__unix__和__vax__,无论有没有使用 ‘-ansi’选项,,始终有效。

使用‘-ansi'选项不会自动拒绝编译非ANSI程序,除非增加`-pedantic'选项作为 `-ansi'选项的补充。

gcc 的‘-pedantic‘选项可打开完全服从ANSI C标准所需的全部警告诊断;拒绝接受采用了被禁止的语法扩展的程序。无论有没有这个选项,符合ANSI C标准的程序应该能够被正确编译(虽然极少数程序需要‘-ansi' 选项)。然而,如果没有这个选项,某些GNU扩展和传统C特性也得到支持。使用这个选项可以拒绝这些程序。没有理由使用这个选项,他存在只是为了满足一些书呆子(pedant)。对于替选关键字(他们以’__'开始和结束) ,‘-pedantic'不会产生警告信息。Pedantic 也不警告跟在__extension__后面的表达式,不过只应该在系统头文件中使用这种转义措施,应用程序最好 避免。


本文转自:点击打开链接

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机信息总提示怎么办 一体机电池不耐用怎么办 血糖偏高怎么办雅培益力佳SR 投诉电话打不通怎么办 宝宝换奶粉拉肚子怎么办 微店没有客源怎么办 itunes文件被保护怎么办 魅族e1黑屏了怎么办 窗帘打孔的扣环怎么办 棉质裤子掉色怎么办 孕期喝咖啡了怎么办 实体店买到假手机怎么办 派派提现没有那么多好友怎么办 派派提现没有支付宝怎么办 电脑电源不够用怎么办 电脑电源不够会怎么办 中行信用卡异常了怎么办 美借还款后秒拒怎么办 海尔空调关不了怎么办 华为p9无服务怎么办 贝贝买到假货怎么办 京东不予退货怎么办? 咸鱼收到货不对怎么办 闲鱼没收到货怎么办 淘宝购物不到货怎么办 百世快递不派送怎么办 圆通快递不派送怎么办 无卡存款没到账怎么办 中国银行分行冻结信用卡怎么办 银行信用卡没还怎么办 免税店提货单丢了怎么办 店长故意整我怎么办 被康妆大道骗了怎么办 银座卡丢了怎么办 银座消费卡丢失怎么办 天津欠债不还怎么办 苹果x买到假的怎么办 网贷到我们家要钱怎么办? 网贷上门要钱怎么办 红酒盖子岂不开怎么办 小程序尚未发布怎么办