格式说明符32位 - 64位

时间:2016-08-10 07:10:06

标签: c visual-studio-2015 32bit-64bit

我使用Visual Studio 2015在32位平台和64位平台上构建项目。

Sizeof返回32位平台中的unsigned int和64位平台中的unsigned __int64。

我有以下代码:

printf ("limit is %u. \n",sizeof(var));

我需要在两个平台上编译相同的代码。使用格式说明符%u在64位中发出警告,使用%I64u以32位发出警告。有没有办法在两个平台上使用一个formatspecifier,而无需编写printf 2次(使用ifdef _WIN32)。我的项目中有很多这些警告。这将是一项很多工作,看起来不干净。

1 个答案:

答案 0 :(得分:4)

sizeof类型size_t

使用%zu作为该类型的格式说明符。它保证为所有平台定义良好。