常用的 预定义宏

OS及C++编译器的一些预定义标识宏 当编写可移植的C++代码,需要做一些所依赖的编译器或操作系统的条件判断,比如下面这样: #if defined(_WIN32) #if defined(_MSC_VER) // Windows平台 Visual Statuio 编译器特定代码 #endif #if defined(__GNUC__) // Windows平台 GCC编译器特定的代码 #endif #endif 为了自己的代码具... 阅读详情

一、介绍预定义宏 "_MSC_VER"
      1、_MSC_VER是微软C/C++编译器——cl.exe 编 译代码时预定义的一个宏。需要针对cl编写代码时, 可以使用该宏进行条件编译。
      2、_MSC_VER的值表示cl的版本。需要针对cl特定版本编写代码时, 也可以使用该宏进行条件编译。
      3、_MSC_VER的类型是"int",具体版本号定义如下:

  MS VC++ 9.0 _MSC_VER = 1500
  MS VC++ 8.0 _MSC_VER = 1400
  MS VC++ 7.1 _MSC_VER = 1310
  MS VC++ 7.0 _MSC_VER = 1300
  MS VC++ 6.0 _MSC_VER = 1200
  MS VC++ 5.0 _MSC_VER = 1100
  其中MS VC++ 9.0就是Visual C++ 2008,MS VC++ 8.0就是Visual C++ 2005。

 

二、介绍预定义宏“__GNUC__”
     1、__GNUC__ 是gcc编译器编译代码时预定义的一个宏。需要针对gcc编写代码时, 可以使用该宏进行条件编译。
     2、__GNUC__ 的值表示gcc的版本。需要针对gcc特定版本编写代码时,也可以使用该宏进行条件编译。
     3、__GNUC__ 的类型是“int”

 

三、预定义宏"__MINGW32__"

     1、MinGW编译器

 

四、symbian sdk预定义宏:

     symbian平台,定义"__SYMBIAN32_"

     3rd MR版及之前的那个3rd版本,定义"__SERIES60_30__"
     3rd FP1版,定义"__SERIES60_31__"
     3rd FP2版,定义"__SERIES60_32__"
     另外,还有一个"__SERIES60_3x__"。若不需区分具体是哪一个3rd版,则用之。

 

 

 

 

 

 

#if defined(_MSC_VER)
    #if _MSC_VER<=1200 //before vc6 (VC6不支持不定参数宏)
    #define os_printf(s)    printf##s
    #else //after vc6
    #define os_printf(fmt,...)    printf(fmt,__VA_ARGS__)
    #endif //_MSC_VER<=1200
#endif //_MSC_VER

#if defined(__GUNC__) //以下两种定义都可以
#define os_printf(fmt,arg...) printf(fmt,##arg)
#define os_printf(fmt,...) printf(fmt,##__VA_ARGS__)
#endif //__GUNC__

#if defined(__MINGW32__)
#endif //__MINGW32__

#define os_print_a0    os_printf   

关于QT的编码格式 QT默认是只支持英文,不支持中文字符的,网上好多人说用 . QTextCodec *codec = QTextCodec::codecForName("GB2312"); QTextCodec::setCodecForLocale(codec); 可以解决,试了发现不管用,其实,这是QT4.0之前的方法。 现在要用下面这种方法设置。 #if defined(_MS 阅读详情

相关推荐

硬件测试入门--环路响应(Bode)测试

环路分析的一个重要作用就是分析开关电源的稳定性。扫频测试原理主要是给开关电源电路注入一个频率变化的正弦信号,测量开关电源在频域上的特性,通过分析穿越频率、增益裕度和相位裕度来判断环路是否稳定,可以为电子工程师设计稳定的控制电路提供直观的数据。开关电源的稳定性关系到整个应用系统的可靠性,利用伯德图可以看出在不同频率下系统增益的大小和相位。通过伯德图来对开关电源的环路稳定性进行判断和分析已经成为评估开关电源可靠性必不可少的方法。

songninging的博客 1万+

Windows 错误处理机制

在开发当中难免会出现函数调用失败,一般情况下我们肯定很急切的想知道是什么致使函数调用失败,作为初级程序员的我们一般为了判断自己的函数调用失败的原因都会选择使用很多的if-else函数来实现,但是要是函数当中会有很多执行失败那么if-else会使我们的函数很杂乱。为了解决这种问题Microsoft提供了错误处理机制。    在一个函数调用完之后我们可以运用两个函数:            Ge

vanileo的专栏 3158

Spine动画在Unity里卡顿、闪烁、排序错乱?这些性能优化与渲染问题一次讲清

本文深入解析了Spine动画在Unity中常见的卡顿、闪烁和排序错乱问题,提供了全面的性能优化与渲染解决方案。从性能瓶颈诊断到材质合并、动态合批优化,再到层级错乱与Alpha闪烁的处理,帮助开发者提升动画表现和运行效率。特别针对Unity和Spine的协同工作进行了详细的技术探讨。

weixin_29967445的博客 379

swig导出符号解决办法

1.C++头文件中导出符号宏 关于SWIG使用过程中,有时C++头文件有导出符号,这在WINDOW系统下是很常见的事,经常看到下面的宏定义: #if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined( __BCPLUSPLUS__) || defined( __MWERKS__) # ...

百冰千岚的博客 909

PDMS二次开发入门:手把手教你用PML2写第一个交互式窗体工具

本文详细介绍了如何使用PML2进行AVEVA PDMS二次开发,从零开始构建交互式窗体工具。通过PML2语言的面向对象特性、即时调试能力和深度系统集成优势,开发者可以高效创建自动化设计工具、批量修改属性和定制报表系统。文章包含开发环境配置、基础语法、窗体架构设计、事件处理等实战内容,帮助读者快速掌握PDMS二次开发技能。

weixin_29281941的博客 271

基于Canfestival的对象字典工具objdictedit.py的运行环境配置

本文以菜狗的视角,一步一步地对对象字典的环境进行配置,旨在能给读者一个比较详细的参考,不恰之处,还请指正。

在线求职中... 3707

_MSC_VER、_WIN32_WINNT

#if defined(_MSC_VER) /* Disable MSVC 'sprintf unsafe' warning */ #pragma warning( disable : 4996 ) #endif    #if _MSC_VER > 1000     #pragma once     #endif // _MSC_VER > 1000     _MSC_VER

vv_VV_vv 2127

Windows下Nginx发布DEM地形瓦片数据全流程(含Cesium调用避坑指南)

本文详细介绍了在Windows环境下使用Nginx发布DEM地形瓦片数据的完整流程,并提供了Cesium前端调用的详细配置与避坑指南。重点讲解了Nginx的核心配置、跨域问题解决以及CesiumTerrainProvider的关键参数设置,帮助开发者快速搭建本地地形服务,实现高效的三维地形可视化。

weixin_29212867的博客 433

C语言编程中常用的预定义宏

C语言预定义宏是获取编译环境和调试信息的重要工具,主要包括以下几类:1)代码位置宏(FILE、LINE、func)用于精确定位;2)编译时间宏(DATE、TIME)记录编译时间信息;3)编译器标准宏(STDC、STDC_VERSION)判断C标准支持情况;4)平台检测宏(_WIN32、linux)识别操作系统;5)编译器专用宏(如GNUC、_MSC_VER)提供编译器版本信息。这些宏在调试、日志记录和跨平台开发中具有重要作用。

stone5195的博客 469

YOLO26 正式发布源代码!极致速度优化方案, 面向工业级落地的目标检测模型!

YOLO26 作为 Ultralytics 公司于 2025 年 9 月发布的最新一代目标检测模型,在架构设计和技术实现上展现了显著的创新。本文深入分析了 YOLO26 的核心架构改进和技术原理,重点探讨了其在边界框回归、推理流程、损失函数设计和优化算法方面的突破性进展。

魔改工程师的博客 1243

PCL点云八叉树体素中心下采样,体素包含点索引提取

基于PCL octree实现点云八叉树计算,支持提取体素中心点进行点云下采样;根据任一点坐标,可以得到其在八叉树中的位置,输出对应体素内其余点的坐标或者索引

qq_48694523的博客 462

C语言常用预定义宏

预定义宏是C标准提供的一组宏,可以让我们很方便处理一些特定信息。 常用的预定义宏如下: 宏 描 述 类型 __DATE__ 当前源文件的编泽日期 字符串 __FILE__ 当前源文件的名称 字符串 __LINE__ 当前源义件中的行号 整形 __TIME__ 当前源文件的最新编译吋间 字符串 示例: #include <stdio.h> void main(void) { printf("File: %s \r\n \

Hongggggggg 1099

在 SAP BTP 上为应用开启多租户能力:基于 SaaS Provisioning 和 XSUAA 的完整实践指南

本文介绍了在SAP BTP上配置多租户应用的实战指南。主要内容包括: 多租户架构概述:解释provider子账户、consumer子账户和tenant的概念,以及数据隔离机制。 安全配置:在xs-security.json中设置tenant-mode为shared,并为SaaS Provisioning服务添加回调scope授权。 路由配置:通过manifest.yml设置TENANT_HOST_PATTERN来定义多租户访问模式,确保不同租户通过不同子域名访问同一应用。 服务绑定:将XSUAA和SaaS

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 144

常用的预定义的宏

常用的预定义的宏 常用的预定义的宏有:__LINE__ 当前源程序行的行号,用十进制整数常量表示 __FILE__ 当前源文件的名称,用字符串常量表示 __DATE__ 编译时的日期,用“MM dd yyyy”形式的字符串常量表示 __TIME__ 编译时的时间,用“hh:mm:ss”形式的字符串常量表示 __STDC__ 当且只当编译器遵循ISO标准时,它的值是十进制常量1 ...

202

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C++中的几个常用的预定义宏

这几个宏用于记录调试日志和运行日志是非常方便的,比如软件报错或者异常的时候可以将文件名、函数名、代码行号、时间等信息记录下来。 第一个__func__ 作用:返回调用该宏的函数的名称字符串 第二个__LINE__ 作用:返回当前调用该宏的语句在代码文件中的行号,即第几行 第三个__FILE__ 作用:返回调用该宏的语句/函数所在的源文件的文件名,含相对路径 第四个__DATE__ 作用:返回系统的日期字符串 第五个__TIME__ 作用:返回系统的时间字符串 测试代码 #include <iostre

wwplh5520370的博客 408

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

跨平台常用的编译器预定义的宏

跨平台常用的宏 #ifdef _WIN32 //define something for Windows (32-bit and 64-bit, this part is common) #ifdef _WIN64 //define something for Windows (64-bit only) #endif#elif __APPLE__ #include "TargetCond

weixin_45983363的博客 622

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ARM编译器常用的预定义宏

ARM编译器预定义了许多宏。这些宏提供有关工具链版本号和编译器选项的信息。 编译器版本 宏为:__ARMCC_VERSION;数字形式呈现;使用方法如下: rt_kprintf("Compiler Version: %u\r\n", __ARMCC_VERSION); 优化等级 宏为:__OPTIMISE_LEVEL;数字形式呈现;使用方法如下: rt_kprintf("Compiler optimization level: %u\r\n", __OPTIMISE_LEVEL); 软件编译日.

caihaitao2000的博客 5569

常用预定义宏

__LINE__ 代码在源文件中当前的行数__FILE__ 当前源文件__TIME__ 系统当前时间__TIMESTAMP__ 当前系统的时间戳__STDC__  完全遵循ansi c标准__DATA__ 系统当前日期

tengxiaoming的专栏 440

MFC 中常用宏的含义|visual c++中预定义的宏

MFC 中常用宏的含义   AND_CATCHAND_CATCH AND_CATCH(exception_class,exception _object_point_name) 说明: 定义一个代码块,它用于获取废除当前TRY块中的附加异常类型。使用CATCH宏以获得一个异常类型,然后使用AND_CATCH宏获得随后的异常处理代码可以访问异常对象(若合适的话)已得到关于异常的特

haiross的专栏 1000

C常用预定义宏

C99 ( ISO/IEC 9899:1999 ) 网上有pdf文件。<br /> C标准中指定了一些预定义的宏,对于编程经常会用到。下面这个表中就是一些常常用到的预定义宏。<br /><br /> __DATE__<br /> 进行预处理的日期(“Mmm dd yyyy”形式的字符串文字 )<br /><br /> __FILE__<br /> 代表当前源代码文件名的字符串文字<br /><br /> __LINE__<br /> 代表当前源代码中的行号的整数常量<br /><b

accessin2008的专栏 976

C语言:常用的预定义的宏

常用的预定义的宏   凡是遵循ISO C标准的编译器都必须定义下面这几个宏。这些宏的名称都是以两个下划线开始,以两个下划线结束。   1、__DATE__    “替代文字”是一个含有编译日期的字符串字面值,日期格式为“mm dd yyyy”(例如:“Mar 19 2006”)。如果日期小于10日,就在日的前面放一个空格符。   2、__FILE__    此字符串字面值含有目前源

项目管理之路 1686

C - 常用预定义宏

预定义宏   __DATE__    字符串, 进行预处理的日期("Mmm dd yyyy", 如May 27 2006)  __TIME__    字符串, 源文件的编译时间("hh:mm:ss", 如09:11:10)  __FILE__    字符串, 代表当前源代码文件名(包含详细路径, 如F:/a.c)  __LINE__    整数值, 代表当前源代码...

weixin_30689307的博客 121

qDebug常用的预定义宏

打印当前函数的名字,不是全称。打印当前文件的相对路径。打印当前函数的全称名字。

qq_43248127的博客 571

ANSI C标准中有几个标准预定义宏(也是常用的):

ANSI C标准中有几个标准预定义宏(也是常用的): __LINE__:在源代码中插入当前源代码行号; __FILE__:在源文件中插入当前源文件名; __DATE__:在源文件中插入当前的编译日期 __TIME__:在源文件中插入当前编译时间; __STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1; __cplusplus:当编写C++程序时

我的征途是星辰大海 840
上一篇: symbian 3rd/5th 复合控件的两种实现方式
下一篇: 玩转windows mobile菜单
code09
博客等级 码龄18年 31粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值