我nullptr在一行 C 代码中包含了一个检查。编译器 (gcc) 在使用-std=c17以及-std=gnu17.
在现代 C 标准中是否有 nullptr(或等效的)这样的东西?(C11, C17)
如果不是,那为什么呢?
不,C 仍然使用NULL空指针。
C++ 需要一个专用的空指针字面量,因为它具有重载和模板类型推导。这些特性被 混淆NULL,它0在 C++ 中扩展为(或类似的)。但是,在 C 中这种混淆的风险很小(可能_Generic会被这个混淆),此外,C 可以(void*)0用于空指针,这进一步降低了这种风险。
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |