当前位置:首页 » 编程软件 » gccc11编译

gccc11编译

发布时间: 2022-07-28 14:24:22

1. c11是什么意思

C11标准是 ISO/IEC 9899:2011 - Information technology -- Programming languages -- C 的简称,曾用名为C1X。

C11标准是c语言标准的第三版,前一个标准版本是C99标准。2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC) 旗下的C语言标准委员会(ISO/IEC JTC1/SC22/WG14)正式发布了C11标准。

名词解释:

C11标准的最终定稿的草案是免费开放的,为N1570 [3] ,但是正式标准文件需要198瑞士法郎。

当前,支持此标准的主流C语言编译器有:GCC、Clang、Intel C++ Compiler等。

对IEEE754标准-2008的半精度浮点数的支持。尽管遵循GNU C标准规范的编译器(GCC以及Clang等)使用了C扩展关键字__fp16,但是只能对半精度浮点数进行引用,而不能做任何算术操作。因此,这个特性应当在下一个C语言标准中立马加入进去的,建议使用_Half作为半精度浮点数类型的关键字。

2. 如何配置C11标准的编译器

gcc默认是不支持c99及以上版本的 如果想支持,需要在编译时加参数:-std=c99 gcc -std=c99 -o xx xx.c 或者在源码里定义宏 #define __STDC_VERSION__ 199901L

3. 请问C11标准的C语言编译器在哪里下载

gcc不含C11的scanf_s等可选函数

4. 一个C语言编译器可以同时支持多种标准吗

可以,以下gcc版本为4.8.2:

gcc-std=c11main.c#以c11标准编译main.c
gcc-std=c99main.c#以c99标准编译main.c
gcc-std=c89main.c#以c89标准编译main.c

5. centos7 gcc编译器对c11标准的支持

gcc-std=c11main.c-omain

前提是你的gcc版本得够新, 支持 c11才可以.

6. 弄明白哪个版本的gcc才支持c11

【背景】

折腾:

【未解决】cygwin下编译crosstool-ng在Building C library时出错:../wcsmbs/uchar.h:47:5: error: #error "<uchar.h> requires ISO C11 mode"

期间,才知道,除了c89,c90,c99之外,还有个c11。

然后,参考:

编译安装glibc

而知,低版本的gcc不支持c11。

(而我此处的eglibc 2.17,和那人的glibc-2.16.0,都是需要支持c11的gcc的)

所以此处想要去搞清楚,什么版本的,哪个版本的,gcc,才支持c11。

【解决过程】

1.google搜:

gcc c11

就可以看到:

2 Language Standards Supported by GCC

而明白:

C89=C90:gcc选项是:-ansi, -std=c90 or -std=iso9899:1990;
带了GNU扩展的:-std=gnu90
C94=C95:gcc选项:-std=iso9899:199409
C99:gcc选项:-std=c99 or -std=iso9899:1999
未完成C99标准之前,叫做C9X
带了GNU扩展的:-std=gnu99
C11:gcc选项是-std=c11 or -std=iso9899:2011
未完成C11标准之前,叫做C1X
带了GNU扩展的:-std=gnu11
2.后来找到:

How to enable c11 on later versions of gcc?

可知:

gcc 4.7

之后,才支持c11.

3.参考:

C11Status

得知:

-std=c1x GCC 4.6

-std=c11 GCC 4.7

uchar.h Library issue (glibc 2.16)

【总结】

gcc是到了4.7,才真正支持c11的。

7. 有哪些支持C11标准的编译器

VS对c语言标准支持得不好,GCC5.1开始完全支持C11,PellesC也是支持C11,不清楚是否完全支持。

8. 请教关于gcc编译文件时遇到C11支持的问题

由于系统比较复杂,首先用VC++.NET 2005 开发,在PC测试全部通过后,使用GCC编译时出现了两个警告,调试时出现一个错误.请高手指教:
1.编译器警告
Queue.h:20: warning: ignoring packed attribute on unpacked non-POD field `CommandPackage Queue::cmd[1]
请教原因
2.编译器警告
buffer.h:12: warning: alignment of 'Buffer::_ZTV6Buffer' is greater than maximum object file alignment. Using 1
3.调试器报错
AVR Simulator: Excessive stack overflow, stop sim

简单说明下程序的情况:
程序用了面向对象的设计,总共涉及了大约10+个类.其中报错了的是指令缓冲相关类.
Buffer继承出了E2PBuffer和CommBuffer,在类内部使用了一个CommandPackage(non-POD)类型组成的Queue类.其中Buffer及其两个子类还有Queue均报了以上两个警告.
我CommandPackage的大小是 10 Byte,缓冲队列最大数量是5,缓冲队列一共产生了6个实例.
由于编译器不支持new和delete,所有对象在全局实例化.并通过函数初始化函数将引用传进类

9. 为什么linux下C11没法使用memcpy_s

简单的说,那就是没有呗;memcpy_s这个本身就是windows的库,而不是标准库,更不是你所说的C11的库;这个应该是windows所谓的更安全的库;

热点内容
安卓高级开发考什么 发布:2025-03-16 11:20:35 浏览:716
揽胜哪个配置带二代地形 发布:2025-03-16 11:16:52 浏览:969
c语言数组存储文件 发布:2025-03-16 11:16:48 浏览:788
sqlserver2016r 发布:2025-03-16 11:15:58 浏览:26
网页登录找不到该服务器什么意思 发布:2025-03-16 11:14:19 浏览:831
网站搭建服务器搭建 发布:2025-03-16 10:33:27 浏览:795
游戏目录在哪里安卓 发布:2025-03-16 10:33:19 浏览:467
婉儿脚本 发布:2025-03-16 10:19:33 浏览:580
c语言ftp下载文件 发布:2025-03-16 10:05:02 浏览:307
手机帐户密码怎么找回密码 发布:2025-03-16 10:02:10 浏览:706