It cannot be a better C. You cannot implement exceptions in it using set jump for example, but the biggest problem is memory management. You can't implement your own arena allocator in golang.
Maybe it's possible to force the transliteration to use a different allocator and then you could use the one you wrote in C?