Я хочу роздрукувати змінну типу size_t
на C, але, схоже, size_t
це псевдонім для різних типів змінних на різних архітектурах. Наприклад, на одній машині (64-розрядної) такий код не видає жодних попереджень:
size_t size = 1;
printf("the size is %ld", size);
але на моїй іншій машині (32-розрядної) наведений вище код видає таке попереджувальне повідомлення:
попередження: формат '% ld' передбачає тип 'long int *', але аргумент 3 має тип 'size_t *'
Я підозрюю, що це пов’язано з різницею у розмірі вказівника, так що на моїй 64-розрядної машині size_t
псевдонім до long int
( "%ld"
), тоді як на моїй 32-розрядної машині size_t
до іншого типу.
Чи існує специфікатор формату спеціально для size_t
?
&
десь прибрали?