c11有什么新特性

作者:丁冬
链接:https://www.zhihu.com/question/39263529/answer/80487228
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

1.“永不返回”_Noreturn

_Noreturn void suicide() {
    abort(); // Actually, abort is _Noreturn as well
}

 

2.编译期断言_Static_assert

_Static_assert(__STDC_VERSION__ >= 201112L, "C11 support required");
// Guess I don't really need _Static_assert to tell me this :-(

 

3.“宏函数重载”_Generic

#define GENERIC_ABS(x) \
    _Generic((x), int: abs, double: fabs)(x)

// Uh, it's not necesarry to relate _Generic to macros...

 

4.内存对齐_Alignof/_Alignas

struct AlignedStorageForT {
    _Alignas(_Alignof(T)) char storage[sizeof(T)];
    // Problem is, we don't need a constructor
};

 

5.原子操作_Atomic

_Atomic int i; // Uh, may I just use atomic_int?

 

6.线程私货_Thread_local

_Thread_local static int i;
// Thread local isn't local!




=_=好吧,我只是来吐槽一下标准C的大头宝宝越来越多了...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值