从‘void*’到‘int’的转换损失精度

2023-05-16

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

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


 1 #include <unistd.h>
 2 #include <cstdio>
 3 #include <pthread.h>
 4 
 5 using namespace std;
 6 
 7 void *thr_fn1(void *arg)
 8 {
 9     printf("thread 1 returning\n");
10     return (void*)1;
11 }
12 
13 void *thr_fn2(void *arg)
14 {
15     printf("thread 2 exiting\n");
16     pthread_exit((void*)2);
17 }
18 
19 int main(int argc, char **argv)
20 {
21     pthread_t tid1, tid2;
22     void *tret;
23 
24     pthread_create(&tid1, NULL, thr_fn1, NULL);
25     pthread_create(&tid2, NULL, thr_fn2, NULL);
26 
27     pthread_join(tid1, &tret);
28     printf("thread 1 exit code %ld\n", (long)tret);
29 
30     pthread_join(tid2, &tret);
31     printf("thread 2 exit code %ld\n", (long)tret);
32 
33     return 0;
34 }  

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


 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main(int argc, char **argv)
 6 {
 7     cout << sizeof(int) << endl;
 8     cout << sizeof(long) << endl;
 9     cout << sizeof(void*) << endl;
10 
11     return 0;
12 }  

执行结果:

4
8
8

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从‘void*’到‘int’的转换损失精度 的相关文章

随机推荐

  • python七段数码管的详解,Python入门基础:七段数码管绘制

    1 在学习Python的过程中 xff0c 运用所学的一些基础知识 xff0c 进行一些简单的编程 xff0c 可以收获很多乐趣 在生活中 xff0c LED灯无处不在 xff0c 荧幕显示的广告词 xff0c 给我们呈现出动态的视觉效果
  • 锐捷和华为重分布实验

    锐捷 华为路由重分布实验 实训目的 xff08 1 xff09 熟悉路由器的基本配置 xff1b xff08 2 xff09 掌握路由重分布配置 实训技术原理 为了实现全网互通 xff0c 我们需要路由器能在不同协议之间交换路由信息或者全网
  • md编辑器活动

    312313 4142131323131313 545465645
  • app.jsNodejs启动测试服务

    39 use strict 39 var express 61 require 39 express 39 var app 61 express 39 39 var fs 61 require 39 fs 39 app get 39 dat
  • python之zip打包

    import zipfile 压缩 z 61 zipfile ZipFile 39 z zip 39 39 w 39 z write 39 xo xml 39 z write 39 xxxoo xml 39 z close 解压 z 61
  • CentOS 7之btrfs文件系统

    核心特性 xff1a 支持多物理卷 xff1a btrfs 可由多个底层物理卷组成 xff0c 支持 RAID xff0c 以联机 添加 移除 xff0c 修改 物理卷 写时复制更新机制 xff08 CoW xff09 xff1a 复制 更
  • 用symbol来获得ShadowSSDT的原始地址和函数名

    在网上看了下 xff0c 获得ShadowSSDT的函数名和原始地址的方法和文章不是很多 比较简单的应该算是设计张函数名表和用symbol的方法 个人觉得用symbol来获得ShadowSSDT还是比较方便的 xff0c 而且自己也不用去创
  • GitLab-ce的汉化

    一 汉化指南 xff0c 基于 Larry Li 版汉化指南 修改 以9 0 stable zh分支为例 源码安装汉化 推荐按照 gitlab ce 源代码中 doc install installation md 的内容手工安装 GitL
  • 打印杨辉三角形

    题目 xff1a 打印出杨辉三角形 程序分析 xff1a 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 定义的是二维数组 xff0c 为了使输出的结果看起来漂亮一点 xff0c 可以用 for xf
  • VMware虚拟机文件损坏修复方法

    一 说明一下起因 xff1a 今天在XP虚拟机中一冲动下载一个5点多GB的PT文件 xff0c 忘记此虚拟文件 xff08 vmdk文件 xff09 仅有2G空间 xff0c 结果超成了空间不足 xff0c VMware7 1提示出错 xf
  • debian下增强bash的自动补全功能

    在我们新安装的Debian系统时 xff0c 发现很多命令都不能自动补全 xff0c 这是很不方便的 xff0c 因为每个人的精力都是有限的 xff0c 不是对每个命令的每一个细节都能完全记住 xff0c 因此自动补全是一个很实用的功能 x
  • 华为RH5885H v3服务器RAID设置及问题解析

    今年春 xff0c 华为全球首发基于英特尔至强E7 v2处理器的系列服务器新品 xff0c 其中包括RH8100 V3八路服务器 RH5885H V3四路服务器和E9000刀片服务器的四路计算节点CH242 V3服务器 最近单位新购了几台华
  • Invalid or corrupt jarfile坑爹问题解决

    打包一个可以直接利用java jar jar cvfm lottery jar MANIFEST MF jdbc properties com 如果出现 xff1a java io IOException invalid header fi
  • ios tableViewCell 高度自适应

    开发过程中 xff0c 会很少使用系统自带的cell xff0c 一般都会自定义cell xff0c 用来展示各式各样的界面布局 xff0c 所以我们要自定义cell 项目中用过很多种cell高度自适应的算法 xff0c 都感觉挺麻烦的 x
  • 比较两个List的内容是否相等

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 一 问题 现在有两个ArrayList列表 xff0c 列表中的元素是String字符串 比较这两个列表中的内容相等 可以顺序不一致 如 xff1a List lt Str
  • 找不到命令报错bash:command not found解决方案

    如果新装的系统 xff0c 运行一些很正常的诸如 xff1a shutdown xff0c fdisk的命令时 xff0c 悍然提示 xff1a bash command not found 那么 首先就要考虑root 的 PATH里是否已
  • FreeRDP简介

    FreeRDP是一个Remote Desktop Protocol xff08 协议 xff09 的一个实现 xff0c 遵循Apache开源协议 xff0c 支持3D功能 xff0c 并有较高刷新率 xff0c 也支持RemoteFX x
  • Crashed when delete OGRSpatialReference objects!

    Crashed when delete OGRSpatialReference objects xff01 OGRSpatialReference oSRS 61 new OGRSpatialReference oSRS gt SetFro
  • 安卓开发笔记——自定义HorizontalScrollView控件(实现QQ5.0侧滑效果)

    对于滑动菜单栏SlidingMenu xff0c 大家应该都不陌生 xff0c 在市场上的一些APP应用里经常可以见到 xff0c 比如人人网 xff0c FaceBook等 前段时间QQ5 0版本出来后也采用了这种设计风格 xff1a x
  • 从‘void*’到‘int’的转换损失精度

    在CentOS6 2 64位下编译一下代码 xff0c 不通过 xff0c 提示 11 2 cpp In function int main int char 11 2 cpp 28 错误 xff1a 从 void 到 int 的转换损失精