Aller à la langue pour voir et se souvenir du langage Partie 7 C en langage GO

Écrivons le langage C en langage GO.

Préparation: Installez GCC.

cPrint.go


package main

// #include <stdio.h>
// #include <stdlib.h>
//
// static void cprint(char* s) {
//   printf("%s\n", s);
// }
import "C"
import "unsafe"

func main() {
	cs := C.CString("Hello World C")
	C.cprint(cs)
	C.free(unsafe.Pointer(cs))
}

//のコメント部分にC言語でコーディングします。

1 stdio.h printf 2 stdlib.h free Je le fais à.

>go run cprint.go
Hello World C

Passez un tableau pour trouver la somme. (int *) version

sum.go


package main

// int cal_sum(int *x,int n) {
// int sum=0;
//	for(int i=0;i<n;i++){
// 		sum+=x[i];
//  }
// return sum;
//}
import "C"
import "fmt"

func main() {
	x := []C.int{1, 2, 3, 4,5,6,7,8,9,10}
	a:=C.cal_sum((*C.int)(&x[0]),(C.int)(len(x)))
	fmt.Println("sigma x=",a)
}

>go run sum.go
sigma x= 55

Passez un tableau pour trouver la somme. (float *) version

sigma.go


package main

// float cal_sum(float *x,int n) {
// float sum=0.0;
//	for(int i=0;i<n;i++){
// 		sum+=x[i];
//  }
// return sum;
//}
import "C"
import "fmt"

func main() {
	x := []C.float{10.0, 20.0, 30.0, 40.0,50.0,60.0,70.0,80.0,90.0,100.0}
	a:=C.cal_sum((*C.float)(&x[0]),(C.int)(len(x)))
	fmt.Println("sigma x=",a)
}

Passez la séquence et calculez la moyenne. (float *) version

avr.go


package main

// float cal_sum(float *x,int n) {
// float sum=0.0;
//	for(int i=0;i<n;i++){
// 		sum+=x[i];
//  }
// return sum/n;
//}
import "C"
import "fmt"

func main() {
	x := []C.float{10.0, 20.0, 30.0, 40.0,50.0,60.0,70.0,80.0,90.0,100.0}
	a:=C.cal_sum((*C.float)(&x[0]),(C.int)(len(x)))
	fmt.Println("avr a=",a)
}

>go run avr.go
avr a= 55

CGO est un mécanisme très pratique.

Recommended Posts

Aller à la langue pour voir et se souvenir du langage Partie 7 C en langage GO
Aller au langage pour voir et se souvenir de la partie 8 Appeler le langage GO à partir de Python
Langage C pour voir et se souvenir de la partie 2 Appeler le langage C à partir de la chaîne Python (argument)
Langage C pour voir et se souvenir de la partie 1 Appeler le langage C depuis Python (bonjour le monde)
Langage C pour voir et se souvenir de la partie 4 Appelez le langage C depuis Python (argument) double
Langage C pour voir et se souvenir de la partie 5 Appel du langage C à partir du tableau Python (argument)
Langage C pour voir et se souvenir de la partie 3 Appelez le langage C depuis Python (argument) c = a + b
J'ai essayé d'illustrer le temps et le temps du langage C
Méthode de contrôle exclusive multi-processus en langage C
Essayez de créer un module Python en langage C
L'histoire du portage du code de C vers Go (et vers la spécification du langage)
Intégration du langage machine en langage C
Tri de tas fait en langage C
Hello World en langue GO
Comment créer et utiliser des bibliothèques statiques / dynamiques en langage C
Lire json avec C # et convertir en type dictionnaire (forcé)
Orienté objet en langage C: "○ ✕ game" a été refacturé et porté en Python
Introduction à l'API Socket apprise en langage C 2e édition client
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie1-
Introduction à l'API Socket apprise en langage C 3e serveur / client TCP # 1
Essayez d'implémenter Yuma en langage Go
Test de module multi-instance en langage C
Pointeur de fonction et objdump ~ Langage C ~
Réaliser une classe d'interface en langage C
Introduction à Protobuf-c (langage C ⇔ Python)
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie2-
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie4-
Comment envelopper C en Python
Réfléchissez sérieusement au langage à utiliser dans l'enseignement de la programmation et l'enseignement de la programmation.
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie3-
Ecrire un test en langue GO + gin
Segfo avec 16 caractères en langage C
Introduction à l'API Socket apprise en langage C 4e édition serveur / client UDP # 1
Faites quelque chose orienté objet dans le langage GO
[Langage C] Je souhaite générer des nombres aléatoires dans la plage spécifiée
Liste de liens (list_head / queue) en langage C
Implémenter et comprendre l'arborescence de recherche d'union dans Go
Implémenter une partie du processus en C ++
Comment utiliser Google Test en langage C
Pour gagner avec des devises, partie 4 ~ LINE Notification Edition
Ecrire le fichier O_SYNC en C et Python
Communication socket par langage C et Python
Générer un langage C à partir d'une expression S avec Python
Comment utiliser is et == en Python
[Golang] À propos du producteur et consommateur de langue Go
Essayez de porter le programme «Programmation informatique numérique FORTRAN77» vers C et Python (partie 1)
Essayez de porter le programme "FORTRAN77 Numerical Computing Programming" vers C et Python (partie 3)
Essayez de porter le programme "FORTRAN77 Numerical Computing Programming" vers C et Python (partie 2)
J'ai fait un module en langage C qui filtre les images chargées par Python
Outil pour insérer le nom du pays et le code du pays dans une partie de l'adresse IP
Comment utiliser la bibliothèque C en Python
Le programmeur Java a touché le langage Go (implémenter l'héritage Java en langage Go)
Implémenter la récurrence et l'exploration commémoratives dans Python and Go
Écriture de journaux dans un fichier CSV (Python, langage C)
Envoyer un message à Skype et Chatwork en Python
Configurer un serveur UDP en langage C