Home

Awesome

c2go - Convert C to Go

Build Status Go Report Card GitHub release Coverage Status GoDoc Language

This project is DEPRECATED! We are shifting our technical roadmap to llgo.

This is a subproject of the Go+ project. Its goal is converting any C project into Go without any human intervention and keeping performance close to C.

Screen Shot1

How to run examples?

Run an example:

Run/Test multiple examples:

How c2go is used in Go+

Here is an example to show how Go+ interacts with C.

import "C"

C.printf C"Hello, c2go!\n"
C.fprintf C.stderr, C"Hi, %7.1f\n", 3.14

Here we use import "C" to import libc. It's an abbreviation for import "C/github.com/goplus/libc". It is equivalent to the following code:

import "C/github.com/goplus/libc"

C.printf C"Hello, c2go!\n"
C.fprintf C.stderr, C"Hi, %7.1f\n", 3.14

In this example we call two C standard functions printf and fprintf, passing a C variable stderr and two C strings in the form of C"xxx" (a Go+ syntax to represent C style strings).

Run gop run . to see the output of this example:

Hello, c2go!
Hi,     3.1

What's our plan?

Tested Platform

Supported C syntax

Data structures

Operators

Literals

Initialization

Control structures

Functions