Имеет ли значение, какой заголовок (cstddef, cstdio, cstdlib и т. Д.) Я включаю, чтобы получить определение size_t? - PullRequest
0 голосов
/ 14 мая 2018

Согласно http://en.cppreference.com/w/cpp/types/size_t, тип size_t определен во многих заголовочных файлах: cstddef, cstdio, cstdlib и т. Д.

При написании собственного кода, какой файл заголовка следует включить виспользуйте size_t?

Это может показаться тривиальным вопросом, но как начало C ++ я обеспокоен следующим:

  • Могу ли я включить любой заголовочный файл и быть увереннымчто size_t будет вести себя одинаково независимо от того, какой заголовочный файл я включил?
  • Есть ли какие-либо сюрпризы, о которых мне нужно знать, например, включение одного заголовочного файла будет иметь удивительные побочные эффекты, в том числе включение другого заголовочного файлане будет?
  • Существует ли соглашение по кодированию или популярное соглашение или практика, касающаяся этого, которое приводит к тому, что большинство людей, включая определенный заголовочный файл, получают определение size_t?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Существует ли соглашение по кодированию, популярное соглашение или практика, касающееся этого, которое приводит к тому, что большинство людей, включая определенный заголовочный файл, получают определение size_t?

Нет, нет или нетпо крайней мере, ни одна популярная, о которой я знаю.Лично в тех случаях, когда мне нужно только std::size_t, чтобы не перетаскивать ненужный код из заголовков, определяющих std::size_t, я определяю свой собственный size_t как:

using size_t = decltype(sizeof(char));

Примечание: вышетакже соответствует стандартному определению std::size_t.

0 голосов
/ 14 мая 2018

Могу ли я включить любой заголовочный файл и быть уверенным, что size_t будет вести себя одинаково независимо от того, какой заголовочный файл я включил?

Да.

Есть ли какие-либо сюрпризы, о которых мне нужно знать, например, если включение одного заголовочного файла будет иметь неожиданные побочные эффекты, которых не будет иметь включение другого заголовочного файла?

номер

Существует ли соглашение по кодированию, популярное соглашение или практика, касающееся этого, которое приводит к тому, что большинство людей, включая конкретный заголовочный файл, получают определение size_t?

Я лично предпочитаю <cstddef>, но я не знаю каких-либо соглашений.

...