图源:Anmi - 水族館 83088427
虽然没有固定标准,但一般将C99之后的C语言标准称为“现代C语言”;目前的最新标准为C23;
C23标准中值得注意的变化
以下是一部分我认为比较重要的变化,完整变化列表可以参阅 https://en.cppreference.com/w/c/23 或ISO标准文档。
替代
<assert.h>
中的static_assert()
宏被替代,变成了static_assert
关键字;<threads.h>
中的thread_local()
宏被替代,变成了thread_local
关键字;<time.h>
中的ctime()
函数弃用,请使用ctime_s()
替代;<time.h>
中的asctime()
函数弃用,请使用asctime_s()
替代;<stdnoreturn.h>
与_Noreturn
标识符均弃用;<stdalign.h>
中的alignas()
和alignof()
宏被弃用,请直接使用_Alignas
和_Alignof
关键字;