Я использую Visual Studio 2015 для создания проекта на 32-битной платформе и на 64-битной платформе.Спецификатор формата 32 бит - 64 бит
Sizeof возвращает неподписанный int в 32-битной платформе и без знака __int64 в 64-битной платформе.
У меня есть следующий код:
printf ("limit is %u. \n",sizeof(var));
Мне нужно собрать тот же код на обеих платформах. Использование спецификатора формата% u дает предупреждение в 64 бит, используя% I64u дает предупреждение в 32 бит. Есть ли способ использовать formatpecifier на обеих платформах без записи printf 2 раза (с ifdef _WIN32). У меня есть много этих предупреждений в моем проекте. Это было бы большой работой и не выглядело бы «чистым».