我想用和uint64_t
从十六进制字符串中读取一些值。printf
scanf
并非我使用的所有平台都具有相同的long
or大小long long
,所以如果我使用格式字符串,"%llx"
它会在 long long 为 128 位"%lx"
的平台上发出警告,并且会在 long long 为 64 位的平台上发出警告(并且 long 更小) )。
我的第一个想法是用宏定义格式字符串,但是宏表达式不支持 sizeof。
有没有办法定义我的格式字符串,以便它可以在任何平台上工作,最好没有警告?