`
RednaxelaFX
  • 浏览: 3017562 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

奇怪的宏

    博客分类:
  • C++
阅读更多
我C++确实不怎么样,不过近来不得不再唤醒那远古的记忆……即使光看代码也得要C++。
好吧,于是我需要wide版的__DATE__和__TIME__之类。但是那俩宏都是char*而不是wchar_t*的,咋办?

用L来转换?

直接转的话,不行。L__DATE__本身是一个有效的id,但却没这东西存在。
用一个宏:
#define WIDEN(x) L##x

也不行,原因同上。

偏偏这样就可以:
#define WIDEN(x) L##x
#define WIDEN2(x) WIDEN(x)


Why???
我得去复习宏展开的规则了……

========================================================

另外一个值得注意的问题。Visual C++的编译器中,宏展开的优先级比string concatenation高,而GCC/BCB等编译器则相反。所以下面的代码在VC里用不了:
WIDEN2(__DATE__ " " __TIME__)

而得写成:
WIDEN2(__DATE__) WIDEN2(" ") WIDEN2(__TIME__)

分享到:
评论

相关推荐

    一样的宏,不同的结果

    这个word文档带有一小段宏。奇怪是,同样的宏,在家里的电脑上,和在公司的电脑上,却出现了不同的执行结果

    VIN码(车架号)校验码计算与检测宏

    VIN码(车架号)校验码计算与检测宏。 生成车辆车架号(VIN)中第9位上的校验码,也可用于检验你得到的VIN码的正确性。用VBA宏代码写成Excel函数,在一...不用Excel数组公式奇怪操作。 VIN码 车辆车架号 校验码计算 检测

    ue4_doxygen_source_filter:Python脚本从源代码中过滤掉UE4 C ++宏,以允许Doxygen处理文件-python source file

    ue4_doxygen_source_filter 这是一个小的脚本,旨在允许... 它假定每个宏都将以其自身开头并在其前面有可选空格的方式开始运行-这是为了阻止它使用看起来像宏的任何字符串来做奇怪的事情。 它仅捕获UFUNCTION,UCL

    stpl:具有纯Rust的超级模板(html等); 没有宏,没有文本文件

    大意在stpl中,没有魔术宏或DSL,也没有语法奇怪的笨拙文本文件。 一切都正常,易于理解的Rust代码。 让我们看一下该试点项目中的一个真实示例:一个基于Bootstrap的UI的基于HTML的骨架模板。 pub fn base (data: & ...

    基于MFC CString的计算器类

    1.可以对字符串进行纠错,有异常的处理,例如有奇怪的字符,括号不匹配,除数等于0等等。 2.可以计算cmath中部分单目运算符,如sin,cos,tan,lg,ln,sinh,cosh等等,内部有单目运算的替代宏,因此可以自行通过一行代码...

    assert,assert_valid,verify,trace用法

    对于开始学vc的人,对于assert,assert_valid,verify,trace的宏感到很奇怪,总是觉得很难掌握似的,其实这些主要是没有理清楚他们各自宏之间深层次的意义。

    NESM:NESM代表Nim的Easy Serialization Macro。 允许通过一行代码生成序列化功能的宏! (这是https的镜像

    允许通过一行代码生成序列化功能的宏! 文档可以在找到。 不要忘记查看以获取更多示例。 错误报告 如果您在宏中发现错误或任何奇怪的行为,请在传递-d:debug标志时将错误报告附加到Nim编译器的输出。

    分压电路_系列电阻选择器_零库存挑战.rar

    但是这两大类之间却互不兼容(即不是包含关系),此,如果你发现选择高精度系列时,反而达不到更高的精度,请不要奇怪。 2. 打开Excel文件时,Excel文件中有用来排序操作的宏,如果希望使用按钮排序,请将宏安全性设...

    jquery attr 设定src中含有&(宏)符号问题的解决方法

    今天在用 jquery 的attr 方法设定 iframe的src属性的时候遇到了一个奇怪的为题,现在把问题及解决方面写出来,让遇到同样问题的人不要在走弯路。

    CLRS_coding_homework:CLRS_coding_homework

    使用std::source_location (在我编写此代码时尚未实现)来替换一些奇怪的宏 作业2 这种分配中的OpenMP不可靠,应该使用task子句重写它(我没有太多时间将程序提升为多线程程序) 作业3 没问题,广泛使用模板来...

    0.6版ffmpeg.c在vs2005下编译

    奇怪VC本身没有round的函数,所以我宏替代 #define lrintf(f) (f>=0?(int32_t)(f+(float)0.5)int32_t)(f-0.4) ); 查手册4舍5入法则: 20.4---->20 20.5---->21 -20.5---->-20 -20.6---->-21 -------------------------...

    你必须知道的495个C语言问题

    5.12 我用预处理宏#defineNullptr(type)(type*)0帮助创建正确类型的空指针。 回顾 59 5.13 这有点奇怪:NULL可以确保是0,但空(null)指针却不一定? 5.14 为什么有那么多关于空指针的疑惑?为什么这些问题...

    深入浅出MFC【侯捷】

    三个奇怪的宏,一张巨大的网 DECLARE_MESSAGE_MAP宏 消息映射网的形成:BEGIN…/ON…/END…宏 米诺托斯(Minotauros)与西修斯(Theseus) 二万五千里长征——消息的传递 直线上溯(一般Windows消息) 拐弯上溯(WM_...

    深入浅出MFC 2e

    三个奇怪的宏,一张巨大的网 DECLARE_MESSAGE_MAP宏 消息映射网的形成:BEGIN…/ON…/END…宏 米诺托斯(Minotauros)与西修斯(Theseus) 二万五千里长征——消息的传递 直线上溯(一般Windows消息) 拐弯上溯(WM_...

    侯捷- -深入浅出MFC

    三个奇怪的宏,一张巨大的网 DECLARE_MESSAGE_MAP宏 消息映射网的形成:BEGIN…/ON…/END…宏 米诺托斯(Minotauros)与西修斯(Theseus) 二万五千里长征——消息的传递 直线上溯(一般Windows消息) 拐弯上溯(WM_...

    《你必须知道的495个C语言问题》

    5.12 我用预处理宏#define Nullptr(type)(type *)0帮助创建正确类型的空指针。 59 回顾 59 5.13 这有点奇怪:NULL可以确保是0,但空(null)指针却不一定? 59 5.14 为什么有那么多关于空指针的疑惑?为什么...

    clj-bob:Clojure的The Little Prover的J-Bob证明助手

    像Scheme实现一样,这主要是基于ACL2语法运行/仿真的宏和函数。 一方面,这真的很奇怪。 另一方面,这意味着在几乎所有情况下这都与这本书完全匹配-这是值得的交易。 我已经成功测试了本书的许多示例(包括最后一...

Global site tag (gtag.js) - Google Analytics