我正在使用Visual 2015在32位平台和64位平台上构建一个项目。
Sizeof在32位平台中返回一个无符号int,在64位平台中返回一个无符号__int64。
我有以下代码:
printf ("limit is %u. \n",sizeof(var));我需要在两个平台上编译相同的代码。使用格式说明符%u在64位发出警告,使用%I64u以32位发出警告。是否有一种方法可以在两个平台上使用格式说明符,而无需编写printf 2次(使用ifdef _WIN32)。我的项目中有很多这样的警告。这将是大量的工作,不会看起来‘干净’。
发布于 2016-08-10 07:13:01
sizeof的类型是size_t。
使用%zu作为该类型的格式说明符。它保证对所有平台都有很好的定义。
https://stackoverflow.com/questions/38866493
复制相似问题