c2go是将C转化为Go的工具。
此项目的目标是:
使用示例:
下面例子是将一段 C 代码翻译为 Go 代码
#include <stdio.h> int main() { int n, c; printf("Enter a number\n"); scanf("%d", &n); if ( n == 2 ) printf("Prime number.\n"); else { for ( c = 2 ; c <= n - 1 ; c++ ) { if ( n % c == 0 ) break; } if ( c != n ) printf("Not prime.\n"); else printf("Prime number.\n"); } return 0; }
c2go transpile prime.c go run prime.go
Enter a number
23
Prime number.
prime.go
代码如下
package main import "unsafe" import "github.com/elliotchance/c2go/noarch" // ... lots of system types in Go removed for brevity. var stdin *noarch.File var stdout *noarch.File var stderr *noarch.File func main() { __init() var n int var c int noarch.Printf([]byte("Enter a number\n\x00")) noarch.Scanf([]byte("%d\x00"), (*[1]int)(unsafe.Pointer(&n))[:]) if n == 2 { noarch.Printf([]byte("Prime number.\n\x00")) } else { for c = 2; c <= n-1; func() int { c += 1 return c }() { if n%c == 0 { break } } if c != n { noarch.Printf([]byte("Not prime.\n\x00")) } else { noarch.Printf([]byte("Prime number.\n\x00")) } } return } func __init() { stdin = noarch.Stdin stdout = noarch.Stdout stderr = noarch.Stderr }
概述 切片是golang中常用的数据类型,是一段连续的内存. 看一下go源码中的定义: type slice struct { array unsafe.Pointer len int cap int } 这里的array就是底层数组首地址的指针,len和cap都是int,是这个切片的长度和容量. 主要的用法有 s := make([]int,5,10) // 第一种 len 5
c2go 是一个将 C 代码转译为 Go 代码的项目。c2go 把整个转换过程分为这样几个步骤: 首先,用 C 语言的预处理程序(preprocessor)解决掉宏和各种预编译指令。 其次,生成的 C 代码再通过 llvm project 中的 clang 命令行进行解析(parser): clang -Xclang -ast-dump=json -fsyntax-only [C源文件..
问题内容: 有什么工具可以将C代码转换为Java代码?我有兴趣将此代码转换为Java: 问题答案: 您是否考虑过使用JNI来代替从C到Java的转换?
我试图将Python程序转换为C++,因为我对Python的理解稍微好一点。然而,翻译出来的代码并不起作用。有人能帮我一下吗?我试图用C++制作一个数独板,但它在中返回一些值,而不是其他位置。加上它们是无效的,并包含0。 这个程序的输出是一个二维数组,所有值都不在0,并且对数独板有效: 是一个长度为9的二维数组,在每个位置都有9个列出的语句。在这里,它们都被初始化为。 这个程序的输出也是一个二维数
问题内容: 我有一个byte.Buffer,我使用binary.Write()函数包装了数据。然后,我需要将此字节数组发送到C函数。使用Go 1.6时,我未能成功解决这一问题。 它在调用C函数的行上失败: C函数: 我能够使以下内容正常工作,但将字节数组转换为字符串感觉不对。有一个更好的方法吗?这种方法是否会对数据产生副作用? 同样,这需要在Go 1.6(引入了更严格的cgo指针规则)下工作。 谢
问题内容: 我想创建一个包含我的类的实例变量的JSON字符串。 例如, 会成为: 我研究了几个用于创建JSON的C ++库,它们似乎都异常复杂。我想要类似Javascript的东西。换句话说,只需将std :: map传递给它并接收一个字符串。该地图可能包含其他地图,向量,列表,字符串,数字和布尔值。 最好的方法是什么? 谢谢你的帮助。 编辑 我研究了以下内容: json spirit,jsonc
我有一个C#winform应用程序,将文件保存到sqlserver数据库(2014)到VAR二进制(MAX)字段 功能保存 要检索的函数 这工作很好,现在我已经要求将数据库转换为XML,用于未连接到服务器的PC 转换为XML的函数 它工作正常,除了二进制文件,当 输出XML 当尝试将其转换回图像时,它会给我1kb的文件,字符串不是实际图像 二进制字段有特殊的转换吗? 非常感谢。 编辑问题解决感谢@