C 格式说明符32位-64位

C 格式说明符32位-64位,c,visual-studio-2015,32bit-64bit,C,Visual Studio 2015,32bit 64bit,我正在使用Visual Studio 2015在32位平台和64位平台上构建一个项目 Sizeof在32位平台中返回无符号整数,在64位平台中返回无符号_int64 我有以下代码: printf ("limit is %u. \n",sizeof(var)); 我需要在两个平台上编译相同的代码。使用格式说明符%u以64位给出警告,使用%I64u以32位给出警告。是否有一种方法可以在两种平台上使用formatspecifier,而不必使用ifdef\u WIN32写入printf 2次。我的项目

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

Sizeof在32位平台中返回无符号整数,在64位平台中返回无符号_int64

我有以下代码:

printf ("limit is %u. \n",sizeof(var));
我需要在两个平台上编译相同的代码。使用格式说明符%u以64位给出警告,使用%I64u以32位给出警告。是否有一种方法可以在两种平台上使用formatspecifier,而不必使用ifdef\u WIN32写入printf 2次。我的项目中有很多这样的警告。这将需要大量的工作,而且看起来不“干净”。

sizeof的类型是一种尺寸

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