GNU C编译器的gnu11和c11

国际标准组织发布c11后,gnu为自己的编译器发布两种标准gnu11和c11

gnu11:带gnu c扩展的c11标准,如果你的代码包含了typeof,__attribute__等等gnu的扩展,就必须用这个。

c11:这个就是纯c11的标准,不带gnu扩展。

可以在Makefile中声明:

CFLAGS=-std=gnu11 -g -Wall

或者,纯标准的c11,玩linux的要慎用,因为linux代码到处都是gnu的痕迹哦,哈哈

CFLAGS=-std=c11 -g -Wall

原文地址:https://www.cnblogs.com/litifeng/p/8328499.html

时间: 2024-11-10 18:51:39

GNU C编译器的gnu11和c11的相关文章

GNU的编译器

GNU的编译器可以编译C或C++语言, 编译C语言使用gcc,编译C++语言使用g++ 如果是使用Linux或者Unix系统(Mac)可以使用以下命令: gcc -v 或者 g++ -v 来查看是否安装了相关的编译器,如果出现类似以下的信息,说明已经安装了: 原文地址:https://www.cnblogs.com/tommy-huang/p/8442187.html

看看GNU编译器都生成了什么样的汇编代码

平时工作中有接触到汇编,一时兴起,就想看看GNU的编译器生成的汇编代码是什么样的. 1. 生成汇编代码 我写了一个非常简单的C语言代码,如下 然后,执行"gcc -S simple_program.s simple_program.c"生成汇编代码(simple_program.s). 如下是注释了的汇编代码,编译器生成的汇编代码是没有注释的. 2. 汇编的知识,再说几点 在汇编代码中,我增加了不少注释.有些问题,我觉得光靠注释是说不清楚的,这里简明交待两点. 2.1 汇编程序中的se

C++对象模型与内存位对齐的简单分析(GNU GCC&VS2015编译器)

以Fruit和Apple为例进行分析: Fruit和Apple的定义如下: 通过在两种编译环境下的测试(GNU GCC & VS2015),可以发现这两种编译器的对象模型是一样的,如下图所示: Apple是Fruit的子类,此为两级的单链继承结构.在Apple和Fruit对象内部,均遵循以下原则: 对象中的第一个成员是指向虚表的虚指针: 对象是按照声明中的顺序被保存的: 然而,两种编译器的内存的位对齐方式略有不同. 对于GNU GCC编译器而言,其遵循以下的原则: 按声明中出现的顺序进行内存分配

JVM - JIT编译器

对效率的追求是程序的天生信仰 - JVM在不断的追求效率 1. 什么是Just In Time编译器? 在主流商用JVM(HotSpot.J9)中,Java程序一开始是通过解释器(Interpreter)进行解释执行的.当JVM发现某个方法或代码块运行特别频繁时,就会把这些代码认定为"热点代码(Hot Spot Code)",然后JVM会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为:即时编译器(Just In Time Compiler,JIT

C11语法汇总(仅记录遇到的坑)

结构体赋值 typedef struct{ int a,b,c; }A; A struct1 = {1,2,3}; //gnu++11支持,gnu11不支持 A struct2 = (A){1,2,3}; //gnu++11.gnu11支持

浅谈对JIT编译器的理解。

1. 什么是Just In Time编译器? Hot Spot 编译 当 JVM 执行代码时,它并不立即开始编译代码.这主要有两个原因: 首先,如果这段代码本身在将来只会被执行一次,那么从本质上看,编译就是在浪费精力.因为将代码翻译成 java 字节码相对于编译这段代码并执行代码来说,要快很多. 当 然,如果一段代码频繁的调用方法,或是一个循环,也就是这段代码被多次执行,那么编译就非常值得了.因此,编译器具有的这种权衡能力会首先执行解释后的代 码,然后再去分辨哪些方法会被频繁调用来保证其本身的编

GNU

1983年,理查德.斯托曼提出GNU计划(革奴计划),希望发展出一套完整的开放源代码操作系统来取代Unix,计划中的操作系统,名为GNU. 1989年,发表GNU通用公共许可协议(GPL).GPL条款下发布的一些主要的GNU项目软件有: GCC:GNU编译器集,包括GNU C编译器. G++:c++编译器,是GCC的一部分. GDB:源代码级的调试器. GNU make:Unix make命令的免费版本. GNU Emacs:文本编辑器及环境. bash:命令解释器(shell). 1991年,

C++ 编译器的安装(MinGW)

GNU GNU是一个自由软件工程项目,GNU工程已经开发了一个被称为"GNU"(GNU是"不是UNIX"的缩写)的.对Unix向上兼容的完整的自由软件系统(free software system). http://www.gnu.org/ gcc与g++区别 GCC:GNU编译器集合,涉及所有由GNU编译器所支持的不同的语言.GCC:GNU C编译器G ++:GNU C ++编译器GCC编译:.C/.cpp文件分别作为C和C ++.G ++编译:.C/.cpp文件

GNU ARM 汇编指令

http://blog.chinaunix.net/u2/87718/showart_1683402.html GNU ARM 汇编指令简介第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针.设置页表.操作 ARM的协处理器等.初始化完成后就可以跳转到C代码执行.需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范. 一. Linux汇编行结构任何汇编行