С данным size_t
, какой тип данных лучше всего подходит для итерации?
void do_some_for(size_t);
Когда я использую int
,
void do_some_for(size_t const size) {
for (int i = 0; i < size; i++) {
}
}
Добрый компиляторпредупреждает меня вот так.
....c:36:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < s; i++) {
^
И установка unsigned
перед int
сбрасывает предупреждение.
void do_some_for(size_t const size) {
for (unsigned int i = 0; i < size; i++) {
}
}
Теперь мой вопрос: какой тип данных (лучший) дляиспользовать?
Я вижу, stdint.h#SIZE_MAX
печатает это,
18446744073709551615 // at least 16 bits, i know.
, что явно равно 2^63 -1
.
Должен ли я использовать unsigned long long int
(C99) для этого?Или есть какой-нибудь динамичный способ сделать это?