golang 에서 C 호출
3125 단어 golang
사용 문서 보기
중요 한 일 은 여러 번 말 해도 지나 치지 않 으 니 반드시 문 서 를 자세히 보아 야 한다.https://github.com/golang/go/wiki/cgo
cgo 주석 과 import"C"사이 에 빈 줄 이 있어 서 는 안 됩 니 다!!
Note that there must be no blank lines in between the cgo comment and the import statement.
package main
/*
#include
int test() {
return 2016;
}
*/
import "C"
import "fmt"
func main() {
fmt.Println(C.test())
}
컴 파일 중 오류 발생:
could not determine kind of name for C.test
영문 도 모 르 게 보 이 는 실 수 는 이 원인 으로 인 한 것 이다.
Go string 과 C string 변환
Go string -> C string
func C.CString(goString string) *C.char
C string 으로 변환 하면 메모리 가 분 배 됩 니 다.따라서 방출 이 필요 합 니 다.문서 의 예 는 다음 과 같 습 니 다.
// #include
import "C"
import "unsafe"
...
var cmsg *C.char = C.CString("hi")
defer C.free(unsafe.Pointer(cmsg))
// do something with the C string
C string -> Go string
func C.GoString(cString *C.char) string
func C.GoStringN(cString *C.char, length C.int) string
C 의 종류 사용
C.char
C.schar(signed char)
C.uchar(unsigned char)
C.short
C.ushort(unsigned short)
C.int
C.uint(unsigned int)
C.long
C.ulong(unsigned long)
C.longlong(long long)
C.ulonglong(unsigned long long)
C.float
C.double
기타 비고
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
set containerThere is no built-in set container in Go How to implement Set struct{} => type struct{}{} => 0bytes How to create set :=...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.