我已经尝试了几乎所有 C 编译器的每种设置,但我还没有找到一个可以将 C 编译成适合实模式内核开发的 Intel x86 代码的 C 编译器。我不需要任何解释为什么你应该使用保护模式;我只需要知道编译一个没有操作系统依赖性的 16 位独立二进制文件需要哪个 C 编译器(以及运行它的设置(如果需要),等等。只是实模式下的裸机,仅此而已。
我很确定这不是 [16 bit C code for real mode kernel]: 16 bit C code for real mode kernel的重复,因为他们接受切换到保护模式作为答案,并且我明确指出结果必须有效对于实模式。
在 C++ 应用程序中,参数全部存储在 char* 数组中,如下所示:
int main(int argc, char* argv[])
{
...
}
Run Code Online (Sandbox Code Playgroud)
然而,很多人更喜欢字符串操作的便利性,但每次都必须将每个 char* 转换为 std::string 会很麻烦。所以我的问题是,如何将 char*[] 转换为 std::string[] ,这样您就不必在程序进行过程中单独将它们全部转换?
我有一个类int32,它的设置方式基本上可以作为int(运算符重载)接口,但有一部分我没有得到.
int32 i32 = 100; // Works
int i = 200; // Works
i32 += 10; // Works
i32 -= 10; // Works, i32 = 100 right now
i = i32; // Doesn't work
Run Code Online (Sandbox Code Playgroud)
我需要什么操作符来重载以实现引用i32返回它的存储值,在这种情况下为100(或者还有什么其他方法可以完成)?