Я пытаюсь использовать функцию C strfmon
, используя cgo.
Пример кода C, который работает:
#include <stdio.h>
#include <monetary.h>
int main(void)
{
char str[100];
double money = 1234.56;
strfmon(str, 100, "%i", money);
printf("%s\n", string);
}
Код Go, который я написал до сих пор:
package main
// #cgo CFLAGS: -g -Wall
// #include <stdlib.h>
// #include <monetary.h>
import "C"
import (
"fmt"
)
func main() {
str := [100]C.char{}
var money C.double = 1234.56
C.strfmon(str, 100, "%i", money)
fmt.Printf("%+v\n", str)
}
Когда я go run main.go
я получаю следующую ошибку:
./main.go:14:2: unexpected type: ...
Я полагаю, что ...
относится к аргументу variadic в strfmon
, но я не уверен, как обойти это из Go.