空指针通常用于函数声明。
例如:
void * square( const void *); |
使用void*返回类型允许任何返回类型。类似地,void*的参数接受任何参数类型。如果要使用参数传入的数据而不更改它,请将其声明为const。
您可以省略参数名,以进一步将声明与其实现隔离。通过这种方式声明函数,可以根据需要自定义定义,而无需更改声明。
考虑以下程序:
#include <stdio.h> void * square ( const void * num); int main() { int x, sq_int; x = 6; sq_int = square(&x); printf ( "%d 平方是 %d\n" , x, sq_int); return 0; } void * square ( const void *num) { int result; result = (*( int *)num) * (*( int *)num); return result; } |
此square函数是为乘法int而编写的,这就是为什么num void指针被强制转换为int的原因。如果要将实现更改为允许square()乘法浮点,则只需要更改定义,而不必更改声明。