在CentOS6.2 64位下编译一下代码,不通过,提示

./11_2.cpp: In function ‘int main(int, char**)’:
./11_2.cpp:28: 错误:从‘void*’到‘int’的转换损失精度
./11_2.cpp:31: 错误:从‘void*’到‘int’的转换损失精度

 #include <unistd.h>
#include <cstdio>
#include <pthread.h> using namespace std; void *thr_fn1(void *arg)
{
printf("thread 1 returning\n");
return (void*);
} void *thr_fn2(void *arg)
{
printf("thread 2 exiting\n");
pthread_exit((void*));
} int main(int argc, char **argv)
{
pthread_t tid1, tid2;
void *tret; pthread_create(&tid1, NULL, thr_fn1, NULL);
pthread_create(&tid2, NULL, thr_fn2, NULL); pthread_join(tid1, &tret);
printf("thread 1 exit code %ld\n", (long)tret); pthread_join(tid2, &tret);
printf("thread 2 exit code %ld\n", (long)tret); return ;
}

既然提示精度损失,那么看一下各自的精度即可:

 #include <iostream>

 using namespace std;

 int main(int argc, char **argv)
{
cout << sizeof(int) << endl;
cout << sizeof(long) << endl;
cout << sizeof(void*) << endl; return ;
}

执行结果:

4
8
8

好吧,确实是精度损失了,从4个字节转换为8个字节。但是问题来了,为什么在64位下,指针是8个字节呢?

最新文章

  1. 【转】angular指令入坑
  2. iOS 下ARC的内存管理机制
  3. FileReader本地预览图片
  4. css+javascript 写的HTML5 微信端输入支付密码键盘
  5. Yslow-23条规则编辑
  6. TF-IDF与余弦相似性的应用(一):自动提取关键词 - 阮一峰的网络日志
  7. Oracle的海量存储技术
  8. QT自动补全设置
  9. 获取select选中的值
  10. 找到python官方标准库文档
  11. Vijos P1114 FBI树【DFS模拟,二叉树入门】
  12. 从HTTL模板引擎看软件设计原则
  13. spring-cloud-config——Quick Start
  14. MyEclipse运行Java出错:could not find the main class:test.program will exit(导入项目)
  15. Python Yaml 学习
  16. 2.logback+slf4j+janino 配置项目的日志输出
  17. UIResponder NSSet UITouch UIEvent
  18. Thunder——基于NABCD评价“欢迎来怼”团队作品
  19. BZOJ5217:[Lydsy2017省队十连测]航海舰队——题解
  20. mysql数据库cmd直接登录

热门文章

  1. [Hybrid App]--Android混合开发,Android、Js的交互
  2. 生成唯一code
  3. python的编码程序例题
  4. 看懂ios命名规则
  5. YUV12(420) (from)to RGB24
  6. npm模块安装机制
  7. java源码阅读HashSet
  8. How to backup a remote PostgreSQL db and restore it locally?
  9. Linux学习笔记 (七)挂载命令
  10. GCD编程-串行队列与并发队列