getenv() имеет реализацию C++, которая может быть включена в файл заголовка. Таким образом, он является членом пространства имен std. Однако функция getenv() может быть правильно решена в моем коде даже без std :: getenv(), что означает, что моя следующая программа может быть скомпилирована и запущена без каких-либо ошибок и предупреждений. Итак, почему getenv() как член имени пространства имен std может быть разрешен без std ::? Моя ОС и компилятор - Ubuntu 12.04 i386 и g ++ 4.8.1 соответственно.Почему getenv() может получить имя без разрешения std ::?
#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;
}
Это [необязательно] (http://stackoverflow.com/a/7596439/962089), являются ли функции в глобальном пространстве имен, а также 'std' при включении' cstdlib'. – chris