Вопросы с тегом «size-t»

13
Что такое size_t в C?
Я запутался size_tв C. Я знаю, что он возвращается sizeofоператором. Но что именно это? Это тип данных? Допустим, у меня есть forцикл: for(i = 0; i < some_size; i++) Я должен использовать int i;или size_t i;?
626 c  int  size-t 

8
без знака int против size_t
Я заметил, что современный код на C и C ++, кажется, использует size_tвместо int/ unsigned intпочти везде - от параметров для строковых функций C до STL. Мне любопытно узнать причину этого и преимущества, которые оно приносит.
493 c++  c  size-t 

7
size_t против uintptr_t
Стандарт C гарантирует, что size_tэто тип, который может содержать любой индекс массива. Это означает, что, по логике, size_tдолжен быть в состоянии содержать любой тип указателя. Я читал на некоторых сайтах, которые я нашел на Google, что это законно и / или должно всегда работать: void *v = malloc(10); size_t s …
246 c  pointers  size-t 

13
Когда использовать std :: size_t?
Мне просто интересно, я должен использовать 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? } } В целом, какова лучшая практика относительно того, когда …

3
Разница между size_t и std :: size_t
Каковы различия между size_t и std::size_tс точки зрения того, где они объявлены, когда они должны использоваться и каких-либо других отличительных особенностей?
139 c++  size-t 

9
Чистый код для printf size_t в C ++ (или: Ближайший эквивалент% z из C99 в C ++)
У меня есть код C ++, который печатает size_t: size_t a; printf("%lu", a); Я бы хотел, чтобы это скомпилировалось без предупреждений как на 32-, так и на 64-битных архитектурах. Если бы это был C99, я бы мог использовать printf("%z", a);. Но AFAICT %zне существует ни на одном стандартном диалекте C …
96 c++  printf  size-t 

3
Независимые от платформы спецификаторы формата size_t в c?
Я хочу распечатать переменную типа size_tC, но похоже, что size_tона привязана к разным типам переменных на разных архитектурах. Например, на одной машине (64-битной) следующий код не выдает никаких предупреждений: size_t size = 1; printf("the size is %ld", size); но на моей другой машине (32-разрядной) приведенный выше код выдает следующее предупреждающее …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.