感谢你们对我的帮助!
我写了一些下面的代码,它可以工作
但是我不知道为什么允许这种重新定义
如果删除usleep重新定义,它将像原始的usleep一样工作
如果有人帮助我,那就太好了
#include <iostream>
#include <unistd.h>
using namespace std;
int usleep(useconds_t useconds)
{
return 100;
}
int main(int argc, char **argv)
{
cout << usleep(1000000) << endl;
}
它编译良好,并返回100
最佳答案
编写using namespace std
时,并不意味着您编写的任何函数都在std
命名空间中。这意味着std
命名空间可用于非限定查找。您正在做的是遮盖std::usleep
,而不是多次定义它。您的usleep
在全局名称空间中。
关于c++ - 为什么可以在g++(gcc)中重新定义gnulib?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56436159/