working with a lot of typedefs in cgo is a real pain (Go's typing rules are simply too strict
for a C programmer).
I'd suggest you create a wrapper function in C (or Go) to create the structure for you.
for printing, you can define the String method on real type of structure (it won't be portable,
as it depends the real type name of the C struct, but it's certainly doable, and will save you
a lot of work if you're debugging a C-Type-rich application)
For example,
package main
/*
struct CType {
int a;
char b;
float c;
};
*/
import "C"
import "fmt"
func (c _Ctype_struct_CType) String() string { return "hello" }
func main() {
fmt.Printf("%v\n", C.struct_CType{})
}