Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1858346
  • 博文数量: 211
  • 博客积分: 464
  • 博客等级: 下士
  • 技术积分: 3794
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-24 18:25
个人简介

阿弥陀佛

文章分类

全部博文(211)

文章存档

2020年(2)

2019年(3)

2018年(5)

2017年(6)

2016年(10)

2015年(9)

2014年(73)

2013年(90)

2012年(13)

分类: LINUX

2013-07-25 22:10:12

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);
阅读(1193) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~