Я запутался size_tв C. Я знаю, что он возвращается sizeofоператором. Но что именно это? Это тип данных? Допустим, у меня есть forцикл: for(i = 0; i < some_size; i++) Я должен использовать int i;или size_t...
Я запутался size_tв C. Я знаю, что он возвращается sizeofоператором. Но что именно это? Это тип данных? Допустим, у меня есть forцикл: for(i = 0; i < some_size; i++) Я должен использовать int i;или size_t...
Я заметил, что современный код на C и C ++, кажется, использует size_tвместо int/ unsigned intпочти везде - от параметров для строковых функций C до STL. Мне любопытно узнать причину этого и преимущества, которые оно...
Стандарт C гарантирует, что size_tэто тип, который может содержать любой индекс массива. Это означает, что, по логике, size_tдолжен быть в состоянии содержать любой тип указателя. Я читал на некоторых сайтах, которые я нашел на Google, что это законно и / или должно всегда работать: void *v =...
Мне просто интересно, я должен использовать std::size_tдля петель и прочее вместо int? Например: #include <cstdint> int main() { for (std::size_t i = 0; i < 10; ++i) { // std::size_t OK here? Or should I use, say, unsigned int instead? } } В целом, какова лучшая практика относительно того,...
Каковы различия между size_t и std::size_tс точки зрения того, где они объявлены, когда они должны использоваться и каких-либо других отличительных
У меня есть код C ++, который печатает size_t: size_t a; printf("%lu", a); Я бы хотел, чтобы это скомпилировалось без предупреждений как на 32-, так и на 64-битных архитектурах. Если бы это был C99, я бы мог использовать printf("%z", a);. Но AFAICT %zне существует ни на одном стандартном диалекте...
Я хочу распечатать переменную типа size_tC, но похоже, что size_tона привязана к разным типам переменных на разных архитектурах. Например, на одной машине (64-битной) следующий код не выдает никаких предупреждений: size_t size = 1; printf("the size is %ld", size); но на моей другой машине...