在不指定命名空间的情况下调用外部函数
calling extern function without specify namespace
代码编译没有错误,我想知道在命名空间内和不在命名空间内声明extern函数有什么不同?
--a.h--
namespace mynamespace {
extern void foo();
}
--a.c--
namespace mynamespace {
void foo(){
dosomething;
};
}
在没有调用 foo() 的情况下,我应该担心什么
指定命名空间?
#include "a.h"
int main(int argc char *argv )
foo()
}
而不是
#include "a.h"
int main(int argc char *argv )
mynamespace::foo();
}
原来using namespace mynamespace;
已经在其他头文件中声明了。所以如果一个文件包含头文件,其中已经定义了using namespace mynamespace;
,那么当前的头文件也会受到影响。
代码编译没有错误,我想知道在命名空间内和不在命名空间内声明extern函数有什么不同?
--a.h--
namespace mynamespace {
extern void foo();
}
--a.c--
namespace mynamespace {
void foo(){
dosomething;
};
}
在没有调用 foo() 的情况下,我应该担心什么 指定命名空间?
#include "a.h"
int main(int argc char *argv )
foo()
}
而不是
#include "a.h"
int main(int argc char *argv )
mynamespace::foo();
}
原来using namespace mynamespace;
已经在其他头文件中声明了。所以如果一个文件包含头文件,其中已经定义了using namespace mynamespace;
,那么当前的头文件也会受到影响。