标签:指针 存储 ptr UNC atom 报错 store tom safe
import (
"fmt"
"sync/atomic"
)
func main() {
var a uint32 = 10
atomic.AddUint32(&a, 1)
fmt.Println(a)
// uint32需要一个非负整数,uint32(int32(-1)), 会被编译器报错,需要一个中间变量b来绕过
b := int32(-1)
atomic.AddUint32(&a, uint32(b))
fmt.Println(a)
// ^uint32(n-1), n为要减去的数
// 整数在计算机以补码形式存在,这里的异或求出来的补码与b的补码相同
atomic.AddUint32(&a, ^uint32(3-1))
fmt.Println(a)
}
标签:指针 存储 ptr UNC atom 报错 store tom safe
原文地址:https://www.cnblogs.com/linyihai/p/10258324.html