关于void *类型
void的字面意思是“无类型”,void *
则为“无类型指针”,void * ptr
表示可以指向任何数据类型的指针,任何类型的指针都可以直接赋值给ptr,无需进行强制类型转换。
因为void *
表示一个“不知道类型”的指针,也就不知道从这个指针地址开始多少字节为一个数据(该指针指向的数据类型所占的字节数),所以void *
只能表示一个地址,不能用*
来取值,也不能用++/--
运算符来移动指针(不知道多少字节是一个数据单位),因此在使用*/++/--
运算符之前必须先将void *
类型转型为具体的类型指针(比如:int *
)。
Linux多线程程序
linux多线程程序会用到
# gcc filename -lpthread //在编译时注意加上-lpthread参数,以调用静态链接库。因为pthread并非Linux系统的默认库
在编译时如果忘了添加-lpthread选项,则gcc会报undefined reference to 'pthread_create'
的错误。