【问题标题】:Format specifier 32 bit - 64 bit [duplicate]格式说明符 32 位 - 64 位 [重复]
【发布时间】:2016-12-16 10:18:42
【问题描述】:

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

Sizeof 在 32 位平台中返回一个无符号整数,在 64 位平台中返回一个无符号 __int64。

我有以下代码:

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

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

【问题讨论】:

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


    【解决方案1】:

    sizeof类型size_t

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 2013-04-15
      • 2014-12-11
      • 1970-01-01
      • 2012-10-26
      相关资源
      最近更新 更多