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