- 浏览: 3053088 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
我C++确实不怎么样,不过近来不得不再唤醒那远古的记忆……即使光看代码也得要C++。
好吧,于是我需要wide版的__DATE__和__TIME__之类。但是那俩宏都是char*而不是wchar_t*的,咋办?
用L来转换?
直接转的话,不行。L__DATE__本身是一个有效的id,但却没这东西存在。
用一个宏:
也不行,原因同上。
偏偏这样就可以:
Why???
我得去复习宏展开的规则了……
========================================================
另外一个值得注意的问题。Visual C++的编译器中,宏展开的优先级比string concatenation高,而GCC/BCB等编译器则相反。所以下面的代码在VC里用不了:
而得写成:
好吧,于是我需要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__)
发表评论
-
字符串的一般封装方式的内存布局 (0): 拿在手上的是什么
2013-11-04 18:22 21509(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
struct做参数不能从寄存器传?
2013-08-28 23:33 0test test test struct Foo { i ... -
[入门级] 使用inline函数的陷阱
2011-04-21 22:39 0xxx.hpp xxx.inline.hpp inline ... -
C++的vtable的name mangling
2011-04-21 21:53 0_ZTV 开头 -
C++里用typedef struct...
2010-06-12 14:42 3894今天要写个东西,参照的一段C++代码里看到了诡异的东西,形式类 ... -
C++的虚方法调用的开销
2010-01-10 02:53 0不只是从vftbl找到函数指针那么简单而已。因为C++支持多继 ... -
C++求值顺序
2009-12-12 23:16 0呵呵,有个例子总是形 ... -
__fastcall由callee做栈平衡
2009-10-14 01:51 0#include <iostream> usin ... -
typedef...
2009-06-16 21:22 0原来函数指针能这样用的啊……原来typedef不只可以用来声明 ... -
拿vtable来玩玩
2009-06-04 03:53 0#include <iostream> usin ... -
从1加到N……我败了
2009-05-11 10:06 0有人提到Python比C++优越因为代码短而简洁,并举例说1加 ... -
delete NULL会怎样?
2009-04-22 10:03 8110原文在此:Can you delete a NULL poin ... -
Boost 1.35.0
2008-06-25 04:45 0Boost C++ Library Version 1.35. ... -
确定性析构在有指针的环境下的麻烦之处
2008-05-16 11:26 2633刚考完大软,心里还在 ... -
typename关键字的使用
2008-05-15 11:31 2916忘了……模板啊忘光了 T T 今天有同学考C++,后来问了我 ... -
又是宏……do..while(0)的用法
2008-05-04 20:24 4672真是的,我用C++还是太少了。这个宏以前明明见过的,但其存在的 ... -
火星了,今天才知道C++0x也通过了lambda表达式/闭包的提案
2008-04-16 19:31 3083如题。我总是后知后觉诶。不过这提案有意思…… 之前我在C#与 ... -
将ANTLR生成的.tokens文件重格式化(C++版)
2008-03-28 02:02 2466相关链接: 将ANTLR生成的.tokens文件重格式化(Ru ...
相关推荐
标题中的“奇怪的EXCEL文件”可能是指在处理一个Excel工作簿时遇到了不寻常的问题。描述中的信息提供了更具体的细节,让我们逐点分析这些异常情况。 1. **A6公式问题**:在Excel中,A6通常指的是单元格引用,可能是...
VIN码(车架号)校验码计算与检测宏。 生成车辆车架号(VIN)中第9位上的校验码,也可用于检验你得到的VIN码的正确性。用VBA宏代码写成Excel函数,在一...不用Excel数组公式奇怪操作。 VIN码 车辆车架号 校验码计算 检测
奇怪的C语言特性 C语言作为一门古老的编程语言,存在着许多奇怪的特性,这些特性虽然看起来奇怪,但它们都是语言的组成部分。本文将对这些奇怪的C语言特性进行介绍和解释。 1. 数组指针特性 在C语言中,a[2] 等价...
鸿蒙系统采用了微内核设计,与传统的宏内核相比,具有更高的安全性和效率。此外,鸿蒙系统还具备跨平台能力,能够支持手机、电视、汽车、智能穿戴等多种设备,构建全场景智慧生活。 其次,鸿蒙系统不再兼容安卓,...
* 宏的副作用,如在某些情况下,宏可能会产生成些奇怪的结果,因此需要小心地使用宏。 3. 预处理器标识#error #error 是一种预处理器指令,它可以用于报告编译时的错误信息。该指令的目的是什么?如果不知道答案,...
ue4_doxygen_source_filter 这是一个小的脚本,旨在允许... 它假定每个宏都将以其自身开头并在其前面有可选空格的方式开始运行-这是为了阻止它使用看起来像宏的任何字符串来做奇怪的事情。 它仅捕获UFUNCTION,UCL
大意在stpl中,没有魔术宏或DSL,也没有语法奇怪的笨拙文本文件。 一切都正常,易于理解的Rust代码。 让我们看一下该试点项目中的一个真实示例:一个基于Bootstrap的UI的基于HTML的骨架模板。 pub fn base (data: & ...
1.可以对字符串进行纠错,有异常的处理,例如有奇怪的字符,括号不匹配,除数等于0等等。 2.可以计算cmath中部分单目运算符,如sin,cos,tan,lg,ln,sinh,cosh等等,内部有单目运算的替代宏,因此可以自行通过一行代码...
在C和C++编程语言中,`##`、`#`、`__VA_ARGS__` 和 `...` 是四个非常特殊的宏操作符,它们在预处理器宏定义中扮演着重要的角色。下面将详细阐述这些概念及其应用。 1. `##` 连接操作符: `##` 操作符用于在宏展开...
对于开始学vc的人,对于assert,assert_valid,verify,trace的宏感到很奇怪,总是觉得很难掌握似的,其实这些主要是没有理清楚他们各自宏之间深层次的意义。
允许通过一行代码生成序列化功能的宏! 文档可以在找到。 不要忘记查看以获取更多示例。 错误报告 如果您在宏中发现错误或任何奇怪的行为,请在传递-d:debug标志时将错误报告附加到Nim编译器的输出。
但是这两大类之间却互不兼容(即不是包含关系),此,如果你发现选择高精度系列时,反而达不到更高的精度,请不要奇怪。 2. 打开Excel文件时,Excel文件中有用来排序操作的宏,如果希望使用按钮排序,请将宏安全性设...
7. **预处理宏**:预处理器宏在C++和C中用于代码的条件编译、宏替换等功能,对于编写可配置的代码或解决平台差异问题很有帮助。 8. **递归与分治算法**:递归是解决问题的一种有效方法,而分治策略则是许多高效算法...
在 Vue 源码中,它的实现原理就是利用的微任务与宏任务。 Vue 中的 DOM 更新是批量处理的,这样做的好处无疑就是能够最大程度的优化性能。当 Vue 同时更新了多个数据时,DOM 是更新一次还是更新多次?答案是更新一...
5. **特殊文本出现**:当打开受感染文档时,屏幕上可能会显示一段奇怪的文本,比如“Twentytwo points, plus triple wordscore, plus fifty points for using all my letters. Game’s over. I’m outta here.” #...
【描述】虽然描述中只提到了“坑爹大冒险”,但我们可以推测这个游戏设计了一系列的编程挑战,可能涉及到变量、控制流、函数、指针等C语言的基础概念,甚至可能涵盖一些高级主题如内存管理、预处理宏等。玩家在游戏...