C에 보이스*가 있으니까 골랑이는 어때요?조사해 보았다
결론
할 수 있다
샘플 코드
package main
import (
"fmt"
"unsafe"
)
type SSS struct {
Pointer interface{}
USafe unsafe.Pointer
}
func main() {
num := 10
sss := "aaaa"
s1 := SSS{
Pointer: &num,
USafe: unsafe.Pointer(&sss),
}
fmt.Printf("%v\n", s1)
fmt.Printf("%d\n", *(s1.Pointer).(*int))
fmt.Printf("%s\n", *(*string)(s1.USafe))
s1.Pointer = &sss
s1.USafe = unsafe.Pointer(&num)
fmt.Printf("%v\n", s1)
fmt.Printf("%s\n", *(s1.Pointer).(*string))
fmt.Printf("%d\n", *(*int)(s1.USafe))
}
실행 결과
$ cat /etc/issue
Ubuntu 20.04.1 LTS \n \l
$ go run chk.go
에서 실행{0xc000096010 0xc0000761e0}
10
aaaa
{0xc0000761e0 0xc000096010}
aaaa
10
가독성, 보수성, 사고 발생 가능성에 대한 확장성을 교환하고 싶습니다.참고 자료
달콤한 세상
Reference
이 문제에 관하여(C에 보이스*가 있으니까 골랑이는 어때요?조사해 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/yoowaan/articles/6f76b639998e5a4095e5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)