[英]Why gnulib redefinition in g++(gcc) is possible?
感謝你們對我的幫助!
我寫了一些下面的代碼,它可以工作
但是我不知道為什么允許這種重新定義
如果刪除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
位於全局名稱空間中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.