c++中c11的新特性有哪些
时间: 2023-04-04 07:03:13 浏览: 88
C11 的新特性包括:
1. _Alignas 和 _Alignof 关键字,用于指定变量的对齐方式和获取变量的对齐方式。
2. _Noreturn 关键字,用于标记函数不会返回。
3. _Static_assert 关键字,用于在编译时进行断言。
4. _Thread_local 关键字,用于指定变量是线程本地的。
5. 泛型选择表达式,可以根据不同类型的参数选择不同的代码路径。
6. 匿名结构体和联合体,可以在不定义结构体或联合体名称的情况下定义变量。
7. 增强的 Unicode 支持,包括 UTF-16 和 UTF-32 字符串字面量。
8. 增强的多线程支持,包括原子操作和线程局部存储。
9. 新的数学函数,包括快速傅里叶变换和复数支持。
10. 新的库函数,包括 strnlen 和 aligned_alloc。
以上就是 C11 的新特性。
相关问题
c++11 的新特性有哪些
C11引入了许多新的特性,以下是一些主要的特性:
1. _Generic 关键字:它可以根据给定的表达式类型,在编译时选择相应的代码路径。
2. 多线程支持:引入了<stdatomic.h>头文件和 _Atomic 关键字来支持原子操作与多线程编程。
3. 静态断言(Static Assertion):通过使用 _Static_assert 关键字,开发人员可以在编译时对表达式进行静态断言,以确保满足某些条件。
4. 匿名结构体和联合体成员:允许在结构体和联合体中定义匿名成员,简化代码。
5. 对齐指定:引入了 _Alignas 和 _Alignof 关键字,用于指定变量和类型的对齐要求。
6. 泛型选择表达式(Generic Selection):通过 _Generic 关键字,可以根据不同的类型选择不同的表达式。
7. 线程本地存储(Thread-Local Storage):使用 _Thread_local 关键字可以实现线程本地存储,使得每个线程都有自己的变量副本。
8. Unicode 字符和字符串字面量:支持 Unicode 字符和字符串字面量。
9. 二进制字面量:可以使用前缀 0b 或 0B 来表示二进制字面量。
10. 支持更大的数组和 VLA(Variable Length Array):增加了数组的最大尺寸和支持可变长度数组。
11. 新的标准库函数和宏:引入了一些新的标准库函数和宏,如 timespec_get()、aligned_alloc()、fmax(), fmin() 等。
C++11有哪些新特性
C11有以下新特性:
1. _Atomic关键字:用于多线程编程,确保原子操作的正确性和一致性。
2. 线程支持:C11引入了线程库,包含了线程创建、同步、互斥、条件变量等功能。
3. _Noreturn关键字:表示函数不会返回,用于编译器优化和错误检测。
4. _Alignof和_Alignas关键字:分别用于获取类型的对齐要求和指定类型的对齐方式。
5. 泛型选择表达式:可以根据参数类型选择不同的函数实现,提高代码复用性。
6. 静态断言:用于编译期检查程序的正确性,如果断言失败,则编译失败。
7. 匿名结构体和联合体:可以不给结构体或联合体定义名称,直接定义成员变量。
8. Unicode支持:C11标准将Unicode编码支持作为标准库的一部分,包含了字符类型和字符串类型的扩展。
9. 增强的泛型宏:可以定义类似函数的宏,支持不同类型参数的宏调用。
10. 增强的for循环:支持遍历数组、链表等数据结构,使代码更加简洁易懂。