EDA365电子论坛网

标题: 关于宏定义使用的问题 [打印本页]

作者: xiannvjiejie    时间: 2021-1-8 14:07
标题: 关于宏定义使用的问题
请问这样使用宏定义高32位数据会丢失是什么原因?直接给64位数据没问题! h# R2 s$ U% L8 R6 l/ ]0 @. K0 E5 e
7 j7 h* b. I0 U; ]  w7 t! O+ l

$ V4 B+ W" @0 g2 C- {/ Y
# \  i1 o2 x( {1 c( s
" t- G  v+ p9 R

# Y2 |- V' z6 c0 U5 Y # G' F8 T! K$ u+ O) c; X

作者: qq666888qqw    时间: 2021-1-8 15:20
常数字面值如果不加修饰,就是 int 类型,如果 sizeof int == 4,那么 << 32 后,就为 0 了。
8 z# h, |" ^. W% ?5 J# m所以,如果要指定类型的字面值,一定要加修饰,比如:0x71070000LL,或者加类型强制:(uint64_t) 0x7107000。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2