我包含哪个头(cstddef,cstdio,cstdlib等)以获取size_t的定义是否重要?

时间:2018-05-14 04:41:14

标签: c++ header c++17 size-t g++4.8

根据http://en.cppreference.com/w/cpp/types/size_t,类型size_t在许多头文件中定义:cstddef,cstdio,cstdlib等。

在编写自己的代码时,我应该包含哪个头文件才能使用size_t

这似乎是一个微不足道的问题,但作为C ++的开头,我关注以下内容:

  • 我是否可以包含任何头文件,并确保size_t无论我包含哪个头文件都会以相同的方式运行?
  • 我是否需要注意一些惊喜,比如包含一个头文件会产生令人惊讶的副作用,包括另一个头文件不会有?
  • 是否有关于此的编码约定或流行惯例或做法导致大多数人(包括特定的头文件)获得size_t的定义?

2 个答案:

答案 0 :(得分:3)

  

我是否可以包含任何头文件,并确保size_t无论我包含哪个头文件都会以相同的方式运行?

  

我是否需要注意一些惊喜,比如包含一个头文件会产生令人惊讶的副作用,包括另一个头文件不会有?

没有

  

是否有针对此的编码惯例或流行惯例或做法导致大多数人(包括特定的头文件)获得size_t的定义?

我个人更喜欢<cstddef>,但我不了解任何约定。

答案 1 :(得分:1)

  

是否有编码惯例或流行的惯例或惯例   关于这一点,导致大多数人,包括一个特定的标题   file获取size_t的定义?

不,我所知道的没有或至少没有那么受欢迎。就个人而言,如果我只需要std::size_t,为了不从定义std::size_t的标题中拖动不必要的代码,我将自己的size_t定义为:

using size_t = decltype(sizeof(char));

注意:上述内容也符合std::size_t的标准定义。