`

C++ 编译期 检测编译环境(32位 / 64位)

    博客分类:
  • C++
c++ 
阅读更多
以下内容摘自:http://stackoverflow.com/questions/1505582/determining-32-vs-64-bit-in-c
// Check windows
#if _WIN32 || _WIN64
#if _WIN64
#define ENVIRONMENT64
#else
#define ENVIRONMENT32
#endif
#endif

// Check GCC
#if __GNUC__
#if __x86_64__ || __ppc64__
#define ENVIRONMENT64
#else
#define ENVIRONMENT32
#endif
#endif


MSDN有关预定义变量的页面:http://msdn.microsoft.com/en-us/library/b0084kay.aspx
_WIN32Defined for applications for Win32 and Win64. Always defined.
_WIN64Defined for applications for Win64.


还有什么_M_AMD64之类关于CPU架构的宏定义请参考MSDN。
分享到:
评论

相关推荐

    c++ 面试题 总结

    如果少了个=号,编译时就会报错,减少了出错的可能行,可以检测出是否少了= -------------------------------------------------------------------------- 7.下面的代码有什么问题? void DoSomeThing(...) { char* ...

    [原创]自己工作中常用的模板库,简化你的工作

    其广泛的应用场景即是把运行期数据以一种非hard-code的方式转化为编译期数据,从而满足元程序对编译期数据的需求。 ☆ C++ doesn't support template-based callback function. this lib package support template-...

    C++代码设计与重用

    2.8.1 抽象const对比位元const 2.8.2 最大限度地使用const 2.8.3 对const不安全的解释 2.9 总结 2.10 练习 2.11 参考文献和相关资料 第3章 扩展性 3.1 扩展性的权衡 3.2 扩展性和继承 3.2.1 只继承基类的...

    用C语言开发手机软件 -Windows+CE+6.0开发者参考

    1.5.4 消息的生命期 1.5.5 注册窗口 1.5.6 创建窗口 1.5.7 消息循环 1.5.8 窗口过程 1.6 HelloCE 1.7 运行HelloCE 第2章 在屏幕上绘图 2.1 绘图基础 2.1.1 合法和非法区域 2.1.2 设备上下文 2.2 文本输出 2.2.1 ...

    Python 错误和异常代码详解

    在编译语言(例如:C++)中,语法错误只在编译期出现,编译器要求所有的语法都正确,才能正常编译。不过对于直译语言(例如:Python)来说,语法错误可能在运行期才会出现,而且不太容易区分语法错误及语义错误。

    c语言编写单片机技巧

    张晓冬 等编著 )和《16/32 位微机原理、汇编语言及接口技术》(作者: 钟晓捷 陈涛 ,机械工业出版社 出版)等,可以在较大型的科技书店里查找或者直接从网上订购。 6. 初学者到底是应该先学C还是汇编? ...

    VC++6.0核心编程源码.rar

    Microsoft公司编译了一个所有可能的错误代码的列表,并且为每个错误代码分配了一个32位的号码。 从系统内部来讲,当一个Windows函数检测到一个错误时,它会使用一个称为线程本地存储器的机制,将相应的错误代码号码...

    C程序设计 第四版 谭浩强 高清扫描版 带完整书签目录 加 学习辅导

    第3部分是上机指南,详细介绍了Visual C++ 6.0集成环境下编辑、编译、调试和运行程序的方法; 第4部分是上机实验指导,包括程序的调试与测试、实验的目的与要求,并提供了本课程12个实验。 《C程序设计(第四版)》...

    操作系统(内存管理)

    在 32-位 x86 系统上,每一个进程可以访问 4 GB 内存。现在,大部分人的系统上并没有 4 GB 内存,即使您将 swap 也算上, 每个进程所使用的内存也肯定少于 4 GB。因此,当加载一个进程时,它会得到一个取决于某个...

    内存管理内存管理内存管理

    在 32-位 x86 系统上,每一个进程可以访问 4 GB 内存。现在,大部分人的系统上并没有 4 GB 内存,即使您将 swap 也算上,每个进程所使用的内存也肯定少于 4 GB。因此,当加载一个进程时,它会得到一个取决于某个...

    新版Android开发教程.rar

    • Windows XP (32-bit) or Vista (32- or 64-bit) • Mac OS X 10.4.8 or later (x86 only) • Linux (tested on Linux Ubuntu Dapper Drake) Supported Supported Supported Supported Development Development ...

    ASP3《高级编程》(第一部分)

    7.1.1 语法或“编译”错误 211 7.1.2 语义或“运行期”错误 215 7.2 各种运行期错误 218 7.2.1 逻辑错误 219 7.2.2 脚本运行期错误 220 7.2.3 ASP和SSI的运行期错误 221 7.2.4 客户端脚本错误 222 7.3 防止...

    ASP3《高级编程》(第二部分)

    7.1.1 语法或“编译”错误 211 7.1.2 语义或“运行期”错误 215 7.2 各种运行期错误 218 7.2.1 逻辑错误 219 7.2.2 脚本运行期错误 220 7.2.3 ASP和SSI的运行期错误 221 7.2.4 客户端脚本错误 222 7.3 防止...

    用C语言开发手机软件-Windows CE 6.0开发者参考

    1.5.4 消息的生命期 1.5.5 注册窗口 1.5.6 创建窗口 1.5.7 消息循环 1.5.8 窗口过程 1.6 HelloCE 1.7 运行HelloCE 第2章 在屏幕上绘图 2.1 绘图基础 2.1.1 合法和非法区域 2.1.2 设备上下文 2.2 文本输出 2.2.1 ...

    asp.net知识库

    常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中,让你的组件也可以绑定 .NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN...

Global site tag (gtag.js) - Google Analytics