簡體   English   中英

為什么可以在g ++(gcc)中重新定義gnulib?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM