2016-12-25 15 views
0

Я читал несколько статей по этой теме, но некоторые говорят, что способ, которым это должно быть сделано, зависит от архитектуры и системы, в которой вы находитесь (Windows/Linux), так есть ли правильный способ сделать эту платформу независимой?Правильный способ scanf и printf переменная size_t (независимая от платформы)

+0

[C99 определяет 'zu' спецификатор формата] (http://en.cppreference.com/w/c/io/fprintf) – StoryTeller

+1

Я думаю, что Microsoft имеет * наконец * догнал со стандартным'% цу 'в VS2015. –

+0

Используйте '"% zu "', '"% zo ",' "% zx" 'или' '% zX" 'в зависимости от того, какую базу вы предпочитаете. – chux

ответ

3

%zu для size_t с

  • %z для длины и
  • %u для беззнаковое

Подробности можно найти на сайте

7.21.6.1 Функция fprintf

6 Символы флагов и их значения:

...

г Указывает, что следующий д, I, O, и, х, или Х спецификатор преобразования относится к size_t или соответствующий признак целочисленного типа; или что следующий указатель преобразования n применяется к указателю на целочисленный тип со знаком, соответствующий аргументу size_t.

 Смежные вопросы

  • Нет связанных вопросов^_^