Tag: 翻译

使用三元运算符将C转换为MIPS

在我的class上,我们正在将C翻译成MIPS。 我们被要求翻译这个片段: A = A ? B : C[0] A = A ? B : C[0] 我相信我理解三元运算符,但这里需要什么? 不应该是一个布尔值吗? 那么它会在MIPS中用1或0值表示吗? 谢谢

将C代码转换为Haskell

如何将这部分C代码翻译成Haskell? 据我所知,我必须使用State monad,但我不知道如何。 int x = 1; int y = 2; x = x * y; y = y + x;

如何在用C编写的类似FORTH的语言解释器中实现LOOP

我在C中编写一个简单的基于堆栈的语言,并且想知道我应该如何实现某种循环结构和/或前瞻符号。 由于此页面的代码有点长(超过200行),我将它放在GitHub存储库中 。 编辑:主程序在文件stack.c 。 编辑:代码只是输入words ,类似于FORTH。 它使用scanf并从左到右工作。 然后它使用一系列if和strcmp来决定做什么。 真的是这样。

在Java应用程序中使用C源代码的最简单方法是什么?

我找到了我想在我的Java应用程序中使用的这个开源库。 该库是用C语言编写的,是在Unix / Linux下开发的,我的应用程序将在Windows上运行。 它是一个主要是数学函数的库,所以据我所知,它不使用任何与平台相关的东西,它只是非常基本的C代码。 而且,它不是那么大,不到5000行。 在我的应用程序中使用库的最简单方法是什么? 我知道有JNI,但这需要找到一个编译器来在Windows下编译库,获得JNI框架的最新版本,编写代码等等。但是可行,但不是那么容易。 有没有更简单的方法? 考虑到库的小尺寸,我很想把它翻译成Java。 是否有任何工具可以帮助解决这个问题? 编辑 我最终将我需要的库部分翻译成Java。 到目前为止,它大约是图书馆的10%,尽管它可能会随着时间的推移而增加。 C和Java非常相似,所以只花了几个小时。 主要的困难是修复因翻译错误而引入的错误。 感谢大家的帮助。 所提出的解决方案似乎都很有趣,当我需要链接到更大的库时,我会研究它们。 对于一小段C代码,手动翻译是最简单的解决方案。

从Delphi调用SHGetSetSettings

我刚读了这个问题和这个问题 ,从那以后我一直试图在Delphi中调用SHGetSetSettings 。 这是shell32.dll一个function,但是在ShlObj.pas没有定义,所以我们需要编写自己的定义。 首先,我们需要翻译SHELLSTATE结构。 现在我只有有限的C经验,但我认为“:1”意味着结构的成员是一个位,也就是说,它们中的八个可以在一个字节中打包在一起。 我还假设DWORD = UINT = 32位无符号整数, LONG = int是32位有符号整数。 但后来我们遇到了一个问题:整个结构将占用228位,即28.5字节,这是……相当不可能,至少在Delphi中, sizeof(SomeRecord)必须是一个整数。 不过,我试图通过在末尾添加四个虚拟位来解决它。 232位= 29字节,这很好。 因此我试过了 PShellState = ^TShellState; TShellState = packed record Data1: cardinal; Data2: cardinal; Data3: cardinal; Data4: cardinal; Data5: cardinal; Data6: cardinal; Data7: cardinal; Data8: byte; // Actually a nibble would be sufficient end; 然后我宣布(为了以后的方便) const fShowAllObjects = […]