package main
import "C"
import "fmt"
func main() {
res := Count()
fmt.Println(res)
}
//export Count
func Count() int {
i:=0
num:=0
for i<100000{
num+=i
i++
}
return num
}
上面是go语言的整形叠加函数, 下面是Python调用该go文件的动态链接库
# coding:utf-8
from ctypes import cdll
lib = cdll.LoadLibrary(r'E:\go\src\GoProject\test_num.so')
res = lib.Count()
print(res)
上面是超过了10000 的整形叠加, 下面是两个程序的结果, 不相等 :
如果叠加范围在10000以内, 数值还是准确的 :
各位大佬有知道什么原理吗?