以下代码是使用gcc编译的,尽管void ptr
算法不是标准的:
int main(){
int a = 5;
void* b = (void*) &a;
b++;
}
[6.20void
和功能指针上的算术在GNU C中,支持加减运算指向
结果是void
的指针和指向函数的指针。这是通过将void
或函数的大小视为1。sizeof
和[函数类型,并返回1。
sizeof( char )
参数p的类型为memset( ( char * )p, 0, n );
。
所以看来这样做是为了向后兼容。