在C语言中,函数指针可以指向任何类型的函数,包括void返回类型的函数。这段代码的意义可以是通过将0强制转换成一个指向函数的指针,然后对它进行解引用和调用,以执行特定的函数操作。 Q: C语言中,为什么要使用(*(void (*)( ) )0)( )这样复杂的方式来调用函数指针? A:这样复杂的方式实际上是一种常用的技巧,主...
函数指针变量和整形变量相对比的话,void (*)(int) 就相当于int,而变量名funcp就和a等同了。 看到这里,再回头看看上面的(*(void(*)())0)();语句,你会发现(void(*)())0是将0强转成无返回值无入参的函数指针地址,外面一层就是取地址执行函数。就是将0地址作为函数的入口地址进行执行。仔细分析一下就能...
还有一种用法是: #define NULL ((void*)0) 当然, 这就是NULL空指针的定义方式(在 stdlib.h 里面). 可, 上面宏的 (void)0 , 一开始确实让我觉得有点奇怪, 不知道干嘛的, 平静下来, 想了想. 原来, 宏里面这样用的目的是防止该宏被用作右值, (void)0 本身也不能作右值, 因为 void 非实际的类型!
返回0代表成功,也就是正确的意思,程序运行成功。返回-1代表错误。返回NULL也是。void 是空类型,也就是没有返回值,不反悔任何数据。主函数main默认是int类型的,如果你不写return 0,系统会自动给这个程序不上return 0 void 不能返回,你那个程序也是不对的!正确的main一般是:int main(char *arg...
部分编程的初学者都会问”void是什么意思”,”为什么很多函数前都要加个void”.实际上,void最简单的解释就是把0转换成空类型的意思。下面用各个开发语言来详解void 1.C语言中的void 表示空类型,它跟int,float是同地位的,一般用在没有返回值的函数中,比如你写void main (),主函数完了不用写return 语句,但是如...
为了避免数据类型告警,所以加了个(void)来修饰。
你这个明显是两个语句,两个都是把0进行强制类型转换成了一个函数指针 第一个函数指针返回值是void,...
在C语言中,void是一个特殊的类型说明符,表示“无类型”或“空类型”。它主要有两种用途: 作为函数的返回类型:当一个函数不返回任何值时,其返回类型被指定为void。这意味着调用该函数时,不应该期望从该函数获得任何返回值。例如: c void printMessage() { printf("Hello, World! } 在这个例子中,printMessage...
如果使用它赋值给指针的话,相当于将指针赋值为 NULL。当然这里面需要强制转换数据类型。把
2、一般我们常见的就是这两种情况:(1)当函数不需要返回值值时,必须使用void限定,这就是我们所说的第一种情况。例如:void func(int a,char *b)。(2)0当函数不允许接受参数时,必须使用void限定,这就是我们所说的第二种情况。例如:int func(void)。