getenv() 有一个 C++ 实现,可以包含在头文件中。所以它是命名空间std的成员。但是,即使没有 std::getenv(),也可以在我的代码中正确解析 getenv() 函数,这意味着我的后续程序可以编译和运行而不会出现任何错误和警告。那么为什么 getenv() 作为命名空间 std 的名称成员可以在没有 std:: 的情况下得到解析?我的操作系统和编译器分别是 Ubuntu 12.04 i386 和 g++ 4.8.1。
#include <cstdlib>
#include <iostream>
int main()
{
char * path_env;
path_env = getenv("PATH"); //without a name resolve operation std::getenv()
std::cout << path_env << std::endl;
return 0;
}