tech:err_go_lang_et_langage_c
Ceci est une ancienne révision du document !
Table des matières
Err Go lang et langage C
Err: could not determine what C.factorial refers to
# command-line-arguments ./maint.go:25:43: could not determine what C.factorial refers to
Solution
Remplacer
package main // #include <stdio.h> // #include <stdlib.h> // // uint factorial(uint N) { // int fact = 1, i; // // // Loop from 1 to N to get the factorial // for (i = 1; i <= N; i++) { // fact *= i; // } // // return fact; // } import "C"
Par
package main // #include <stdio.h> // #include <stdlib.h> // // uint factorial(uint N) { // int fact = 1, i; // // // Loop from 1 to N to get the factorial // for (i = 1; i <= N; i++) { // fact *= i; // } // // return fact; // } import "C"
Il ne faut pas d'espace entre le bloque du code C et import "C"
Err: cannot use i (variable of type int) as _Ctype_uint value in argument to (_Cfunc_factorial)
Solution
Il faut caster. Ici dans notre exemple avec C.uint()
package main // #include <stdio.h> // #include <stdlib.h> // // uint factorial(uint N) { // int fact = 1, i; // // // Loop from 1 to N to get the factorial // for (i = 1; i <= N; i++) { // fact *= i; // } // // return fact; // } import "C" import "fmt" func main() { for i := range 10 { //fmt.Printf("i: %.3d;, fact: %.6d\n", i, C.factorial(i)) fmt.Printf("i: %.3d;, fact: %.6d\n", i, C.factorial(C.uint(i))) i++ } }
tech/err_go_lang_et_langage_c.1776798617.txt.gz · Dernière modification : de Jean-Baptiste
