(void)变量;
在代码中没有具体意义,只是告诉编译器该变量已经使用了
ret_t page_init(widget_t* win, void* ctx) {
(void)ctx;
return_value_if_fail(win != NULL, RET_BAD_PARAMS);
return RET_OK;
}
(void *)变量
void *
就是无类型指针类型,他所指向的内存空间没有被认为是某一种特定的类型。
void *ctx;
if(ctx==(void*)0) return 0;
*(unsigned char*)ctx=1;
ctx
被定义成void *
,(void *)0
把0
强制转换为 void *
,便于跟j进行同类型比较, 所以 ctx==(void *)0
的意思是,判断ctx
是不是0
,即ctx
是否指向0
地址。
*(unsigned char *)cxt
,首先看(unsigned char *)ctx
,意思是把j强制类型转换为unsigned char *
型,那么*(unsigned char *)ctx
就是把ctx 指向的内存空间的一个字节强制当作unsigned char
来用。*(unsigned char *)ctx=1
就是把1写入j指向的那个一字节空间。
(void)函数名
表示程序并不关心调用该函数后的返回值是什么。
这种写法不针对人,也不针对编译器,而是针对静态代码检测工具,它会把函数返回值作为一项检测标准。