热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

gcc的c语言标准,gcc编译C语言

本文目录一览:1、Linux操作系统中默认安装的C语言编译系统是

本文目录一览:


  • 1、Linux操作系统中默认安装的C语言编译系统是


  • 2、C语言在世界上有几个标准?


  • 3、如何查看gcc编译器默认支持的c语言标准


  • 4、如何看待GCC5将C语言默认标准改为gnu11


  • 5、各位兄弟,怎么在C语言编译器gcc里面转换C99或C98标准,gcc默认的是哪个标准?


  • 6、C语言。GCC标准和C99标准有什么区别?为什么语言还有标准之分?是功能更新和升级么?

Linux操作系统中默认安装的C语言编译系统是

Linux操作系统中默认安装的C语言编译系统是GCC(GNU Compiler Collection),是Linux下最常用的C语言编译器,是GNU项目中符合ANSI,C标准的编译系统,能够编译用C、Object C等语言编写的程序。

同时它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula,3和Ada等。

C语言的标准

1.1 K,RC

1973年,Dennis M Ritchie设计和实现了C语言,从那以后使用者逐渐增加。

1978年,Kernighan 和 Ritchie 合著了《The C Programming Language》,这本书定义的C语言被称为 K,RC 。

1.2 标准 C

随着C语言使用日益广泛,出现了许多新问题,人们迫切希望对C语言进行标准化。

第一个标准:C89

1983年,ANSI成立了一个委员会X3J11,对C语言进行标准化。

1989年,ANSI 批准了第一个C语言标准 X3,159-1989,并于1990年公布,被称为 ANSIC、C89 或 C90。

1990年,这个标准又被批准为ISO标准:ISO,IEC 9899:1990 。

ANSIC标准被ISO采纳,并且ISO发布的修订版也被ANSI采纳,因此ANSI标准和ISO标准实际上没有技术区别。这些名称的含义是相同的:ANSI C、ISO C、标准C。

1994年和1996年,ISO发布了两个技术更正,更正了1990ISOC标准中的错误。

第二个标准:C94

1995年,ISO发布了1990ISOC标准的一个补充,称为AMD1。扩充后的标准被称为C94或C95。

第三个标准:C99

1999年,ISO发布了一个新版本的ISOC标准:ISO,IEC9899:1999,称为C99。

2001年、2004年和2007年,ISO发布了三个技术更正,更正了1999ISOC标准中的错误。

第四个标准:C11

2011年,ISO发布了一个新版本的ISOC标准:ISO,IEC9899:2011,称为C11。C11 是 C语言的最新标准。

1.3 GNUC

1984年,Richard Stallman 发起了GNU计划,它的目标是开发一个完整且自由的Unix-like操作系统(GNU系统)。

GNU系统是一个完整的操作系统,包括操作系统内核和各种工具软件。各种GNU系统的变种(例如Redhat、Ubuntu等)已经被广泛使用,它们使用的操作系统内核都是Linux。虽然这些系统经常被称为Linux,但准确地说,它们是GNU/Linux系统。

GNU在编写Linux时扩展了标准C,称为GNUC。

GNU C的扩展详见:Extensions to the C Language Family

GNU C也称为Linux C,一般用于Linux上的开发,而标准C可以跨平台。

GNU C使用的编译器是GCC。

C语言在世界上有几个标准?

最初是有ANSI C标准,然后ANSI把这个标准提交到ISO(毕竟ISO是国际化标准组织),ISO采纳为国家标准。ISO C与ANSI C内容基本相同,主要是格式组织不一样。这个标准是89年发布的,通常称为C89.

99年ISO发布了新的C标准,通常称为C99.

因为ANSI与ISO的C标准内容基本相同,所以对于C标准,可以称为ANSI C,也可以说是ISO C,或者ANSI/ISO C。

此外没有C标准。不存在什么GNU C标准。

GNU计划中含多个内容,其中包括开发C/C++编译器。这个编译器通常简称为GCC(GNU C/C++ compiler)

总而言之,ANSI/ISO C是语言标准。GCC是具体的编译器,它必须符合ANSI/ISO C标准的要求。

如何查看gcc编译器默认支持的c语言标准

gcc默认是不支持c99及以上版本的

如果想支持,需要在编译时加参数:-std=c99

gcc -std=c99 -o xx xx.c

或者在源码里定义宏

#define __STDC_VERSION__ 199901L

如何看待GCC5将C语言默认标准改为gnu11

如果项目代码是从0全编译的, 那么一点问题都没有; 但是如果有用别人的库, 那么不好意思, 代码可能链接不过去, 因为GCC C++11和C++03的ABI是不一样的. 不过可以添加参数-D_GLIBCXX_USE_CXX11_ABI=0来解决

改变的时候到了,喜闻乐见大快人心。反正 C ABI 没啥改的,过时的 construct 也不流行(C 标准本身也要按着向下兼容的基本法……)。

GCC 5 的 C++ ABI 是另一件事情,况且目前可以开 --with-default-libstdcxx-abi=gcc4-compatible。开 CFLAGS 改 define 不去看 configure --help?有洞啊。顺便一提,GCC 6 才改默认 C++ 标准,改到 gnu++14。

各位兄弟,怎么在C语言编译器gcc里面转换C99或C98标准,gcc默认的是哪个标准?

C99标准是默认的

至于怎么切换我还真不知道,

区别C99与C89最简单的就是看他是否支持//单行注释

C语言。GCC标准和C99标准有什么区别?为什么语言还有标准之分?是功能更新和升级么?

GCC遵循标准C,但GCC扩展了一些功能,有些在标准C编译器不能通过,在GCC就能通过。举个简单例子:在标准C不支持变长数组,而GCC就可以支持,C89不支持任何位置定义变量,而GCC可以随处定义,即代码写到某处需要用一个变量即可就在那儿定义一个变量。


推荐阅读
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • Java 中 Writer flush()方法,示例 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文详细介绍了如何使用Spring Boot进行高效开发,涵盖了配置、实例化容器以及核心注解的使用方法。 ... [详细]
author-avatar
我以为我疯叻_219
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有