Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
4年前关闭。
Improve this question
我正在学习c。我阅读的The book基于C99。我想在完成本书后将自己的知识更新为C11,或者如果存在重大差异,请更改资源。因此,我要的是一种解释或资源来更新我的知识。我只找到this source。但是,它似乎不包含我需要或不简洁的信息。
提前致谢。
附注:我想学习C11,因为我认为这是目前流行的标准。如果没有,请通知我。 https://en.wikipedia.org/wiki/C11_(C_standard_revision) http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf https://smartbear.com/blog/test-and-monitor/c11-a-new-c-standard-aiming-at-safer-programming/
该标准包括对C99语言和库规范的一些更改,例如:
对齐规范( 使用
多线程支持( 基于C Unicode技术报告ISO / IEC TR 19769:2004改进的Unicode支持(用于存储 删除 边界检查接口(interface)(附件K)。 可分析性功能(附件L)。 用于查询浮点类型特征的更多宏,涉及到非标准浮点数和该类型能够存储的十进制数字的数目。 匿名结构和联合,当联合和结构嵌套时非常有用,例如在 静态断言,当翻译器理解类型时,将在翻译过程中在比 专用于 用于构造复杂值的宏(部分原因是,如果
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
4年前关闭。
Improve this question
我正在学习c。我阅读的The book基于C99。我想在完成本书后将自己的知识更新为C11,或者如果存在重大差异,请更改资源。因此,我要的是一种解释或资源来更新我的知识。我只找到this source。但是,它似乎不包含我需要或不简洁的信息。
提前致谢。
附注:我想学习C11,因为我认为这是目前流行的标准。如果没有,请通知我。
最佳答案
良好的C11标准概述:
该标准包括对C99语言和库规范的一些更改,例如:
_Alignas
说明符,_Alignof
运算符,aligned_alloc
函数,<stdalign.h>
头文件)_Noreturn
函数说明符和<stdnoreturn.h>
头文件_Generic
关键字的类型通用表达式。例如,以下宏cbrt(x)
取决于cbrtl(x)
的类型转换为cbrt(x)
,cbrtf(x)
或x
:#define cbrt(x) _Generic((x), long double: cbrtl, \
default: cbrt, \
float: cbrtf)(x)
_Thread_local
存储类说明符,<threads.h>
header ,包括线程创建/管理功能,互斥锁,条件变量和特定于线程的存储功能,以及_Atomic
类型限定符和<stdatomic.h>
,用于不间断的对象访问)。 char16_t
编码数据的char32_t
和UTF-16/UTF-32
类型,包括<uchar.h>
中的转换函数以及相应的u和U字符串文字前缀以及u8前缀用于UTF-8
编码的文字。 gets
函数,在以前的C语言标准修订版ISO / IEC 9899:1999 / Cor.3:2007(E)中已弃用,取而代之的是新的安全替代方法gets_s
。 struct T { int tag; union { float x; int n; }; };
中。 #if
和#error
更高的阶段评估该断言。 "…x"
的创建和打开模式(open
后缀)。行为类似于O_CREAT|O_EXCL
中的POSIX
,通常用于锁定文件。 quick_exit
函数是终止程序的第三种方法,如果终止exit
失败,则至少要进行最少的反初始化。 real + imaginary*I
为infinite或imaginary
,NaN
可能不会产生预期值)。 关于c - c99和c11之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38405260/
10-11 18:36