uint64_t 类型 可以支持64位的无符号数,使用这个关键字,需要引用头文件#include
在使用多线程的过程中,pthread_create(&tid,NULL,func,arg);
如果只是想传一个数进去,那么可以直接写成pthread(&tid,NULL,func,(void *)arg);
然后在实际的func函数中将数据转换回来。
void *func(void *arg){
int id = (int)arg;
//TODO:
}
这样做,gcc会提出警告,如果说你可以确保arg的数据是在int范围之内的,这样使用完全没问题,如果无法确保,即当数据>2^31-1 的时候,这样使用就会出错,编程的时候需要自己衡量。
而且 b = (200<<20)*300 这样系统会报警告,而且运行时会显示溢出。
因为他把右边的变量当成32位的类型处理了,而该临时变量存储不下导致的。
应该写成 b=(200<<20)*(300ull);
阅读(1256) | 评论(0) | 转发(0) |