我正在尝试编写一个插件来支持Sublime中的类似vim的替换模式.要做到这一点,我需要做一些事情:
toggle_overwrite).第2项更重要,因为我可以随时检测并切换.
如何检测是否启用了覆盖模式?
从其他StackOverflow问题和ISO/IEC草案C++标准标准的§9.5.1中可以看出,使用联合来执行文字reinterpret_cast数据是未定义的行为.
请考虑以下代码.目标是取整数值,0xffff并将其解释为IEEE 754浮点中的一系列位.(二进制转换直观地显示了这是如何完成的.)
#include <iostream>
using namespace std;
union unionType {
int myInt;
float myFloat;
};
int main() {
int i = 0xffff;
unionType u;
u.myInt = i;
cout << "size of int " << sizeof(int) << endl;
cout << "size of float " << sizeof(float) << endl;
cout << "myInt " << u.myInt << endl;
cout << "myFloat " << u.myFloat << endl;
float theFloat = *reinterpret_cast<float*>(&i);
cout << …Run Code Online (Sandbox Code Playgroud)