【发布时间】:2008-10-26 01:55:05
【问题描述】:
在我继承的一些代码中,我看到size_t 经常与std 命名空间限定符一起使用。例如:
std::size_t n = sizeof( long );
当然,它编译并运行良好。但这对我来说似乎是一种不好的做法(可能是从 C 继承而来的?)。
size_t 不是内置在 C++ 中并因此位于全局命名空间中吗?在 C++ 中使用 size_t 是否需要包含头文件?
问这个问题的另一种方法是,以下程序(包含 no)是否应该在所有 C++ 编译器上编译?
size_t foo()
{
return sizeof( long );
}
【问题讨论】:
-
C 没有命名空间。
-
它内置在 C++ 中,当你#include
时,它位于命名空间 std。请参阅下面的答案。 -
这不是“提出这个问题的另一种方式”——这是一个不同的问题:main 返回 int。