当前位置: 首页 > news >正文

面试题——敲代码推断操作系统位数

sizeof(void *)不是非常准确,跟编译器以及编译选项有关。

所以以下用宏来推断。


在windows上vc编译器会提前定义宏_WIN32和_WIN64
msdn上列出的_WIN32和_WIN64





当中_WIN32在32位系统上定义
_WIN32 _WIN64在64位系统上均被定义



在unix上gcc编译器会提前定义__GNUC__,__GNUC__ 的值表示gcc的版本号。

通过gcc -dM -E test.c  命令能够用来查看gcc提前定义的宏。(test.c为随意c文件),编译器会列出全部提前定义宏。


#include <stdio.h>

main()
{
#if _WIN32 || _WIN64
#if _WIN64
#define ENVIRONMENT64
#else
#define ENVIRONMENT32
#endif
#endif

#if __GNUC__
#if __x86_64__ || __ppc64__
#define ENVIRONMENT64
#else
#define ENVIRONMENT32
#endif
#endif

#ifdef ENVIRONMENT64
	printf("64\n");
#else ENVIRONMENT32
	printf("32\n");
#endif
}


转载于:https://www.cnblogs.com/yutingliuyl/p/7090003.html

相关文章:

  • FetchType与FetchMode的差别
  • 4443: [Scoi2015]小秃玩矩阵|二分答案|匈牙利
  • OPENGL 红宝书实验笔记
  • 智能家居新品迭出 巨头涌入加速产业升级
  • 不谈营收的 SaaS 增长都是耍流氓!
  • “云上贵州”大赛完整诠释大数据三大业态
  • 苹果芯片订单立功 台积电股价创新高
  • 通讯应用Kik推出聊天机器人商店
  • 360回归A股再进一步:上市辅导进展工作报告出炉
  • OTT:全球联网设备超过80亿部,流量增速惊人
  • 《OpenGL ES应用开发实践指南:Android卷》—— 1.6 小结
  • 小米试水线下渠道:五家门店月营业额过千万
  • 昆明视频监控建设行之有效 明年底实现百分百覆盖
  • 《 测试反模式:有效规避常见的92种测试陷阱》—— 2.2 测试类型相关陷阱
  • Gartner AI商业观察:2021年行业解决方案30%营收净增长来自AI
  • 网络传输文件的问题
  • [译] 怎样写一个基础的编译器
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Linux后台研发超实用命令总结
  • node学习系列之简单文件上传
  • 简单基于spring的redis配置(单机和集群模式)
  • 爬虫模拟登陆 SegmentFault
  • 扑朔迷离的属性和特性【彻底弄清】
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 使用parted解决大于2T的磁盘分区
  • Linux权限管理(week1_day5)--技术流ken
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​linux启动进程的方式
  • ​力扣解法汇总946-验证栈序列
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • (1)虚拟机的安装与使用,linux系统安装
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (附源码)php投票系统 毕业设计 121500
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (一一四)第九章编程练习
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)甲方乙方——赵民谈找工作
  • (转)四层和七层负载均衡的区别
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET 常见的偏门问题
  • .NET 回调、接口回调、 委托
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET大文件上传知识整理
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [100天算法】-不同路径 III(day 73)
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [Android 13]Input系列--获取触摸窗口
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [BSGS算法]纯水斐波那契数列
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk --不会编程的崽
  • [JS真好玩] 掘金创作者必备: 监控每天是谁取关了你?