pyr*_*hic 7 c pointers void-pointers
所以,如果你这样做:
void *ptr = NULL;
Run Code Online (Sandbox Code Playgroud)
检查该void指针是否为NULL的最佳方法是什么?
我现在的解决方法是:
if (*(void**)ptr == NULL) ...
Run Code Online (Sandbox Code Playgroud)
但这似乎不是最好的方法,因为我隐含地假设ptr是void**类型(它不是).
nma*_*ier 11
我只是写if (!ptr).
NULL基本上是0和!0是真实的.
一定要包含NULL的定义.
#include <stddef.h>
void *X = NULL;
// do stuff
if (X != NULL) // etc.
Run Code Online (Sandbox Code Playgroud)
如果你包括<stdio.h>和类似,然后stddef.h自动拉入.
最后,看看NULL的定义很有意思stddef.h,通过这样做,你会明白为什么你最初的猜测是有趣的.
| 归档时间: |
|
| 查看次数: |
55412 次 |
| 最近记录: |