C++中odr怎么用
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍了C++中odr怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。// The main module. File:
千家信息网最后更新 2025年02月01日C++中odr怎么用
这篇文章主要介绍了C++中odr怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
// The main module. File: odr_test1.cpp #includevoid module1_print(); // declaration of an exeternal function inline int f1(){ return 4;} class A{public: static double f() { return 4.1; }}; const double C = 4.2; constexpr double E = 4.5; void print(){ std::cout << "main f1(): " << f1() << std::endl; std::cout << "main A::f(): " << A::f() << std::endl; std::cout << "main C: " << C << std::endl; std::cout << "main E: " << E << std::endl;} int main(){ module1_print(); print(); int i; std::cin >> i; }
// File: module1.cpp #includeinline int f1(){ return 3;} class A{public: static double f() { return 3.1; }}; const double C = 3.2; constexpr double E = 3.5; void module1_print(){ std::cout << "module1 f1(): " << f1() << std::endl; std::cout << "module1 A::f(): " << A::f() << std::endl; std::cout << "module1 C: " << C << std::endl; std::cout << "module1 E: " << E << std::endl;}
1、在VS2017上运行的结果为:
2、使用clang进行编译
clang++ module1.cpp odr_test1.cpp
运行结果:
若进行下面的编译:
clang++ odr_test1.cpp module1.cpp
则结果如下
3、使用gcc编译
g++ module1.cpp odr_test1.cpp -std=c++11
若进行如下编译
g++ odr_test1.cpp module1.cpp -std=c++11
二、如何解决这个问题
// The main module. File: odr_test2.cpp#includevoid module2_print(); // declaration of an external function namespace{inline int f1(){return 4;} class A{public:static double f(){return 4.1;}};} const double C = 4.2;constexpr double E = 4.5; void print(){std::cout << "main f1(): " << f1() << std::endl;std::cout << "main A::f(): " << A::f() << std::endl;std::cout << "main C: " << C << std::endl;std::cout << "main E: " << E << std::endl;} int main(){module2_print();print(); int i;std::cin >> i;}
// File: module2.cpp #includenamespace{inline int f1(){return 3;} class A{public:static double f(){return 3.1;}};} const double C = 3.2;constexpr double E = 3.5; void module2_print(){std::cout << "module2 f1(): " << f1() << std::endl;std::cout << "module2 A::f(): " << A::f() << std::endl;std::cout << "module2 C: " << C << std::endl;std::cout << "module2 E: " << E << std::endl;}
运行结果
感谢你能够认真阅读完这篇文章,希望小编分享的"C++中odr怎么用"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
篇文章
结果
编译
运行
C++
价值
兴趣
同时
更多
朋友
知识
编带
行业
资讯
资讯频道
问题
面的
频道
参考
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
有网络安全监察
二十一互联网科技
汉中市汉台区公安局网络安全
软件开发行业新闻收集
易盛网络技术开发有限公司
乡镇网络安全检查制度
网络安全断网报警
服务器404页面是什么原因
密云区网络技术咨询采购
网络安全人员方面
锁屏后微信无法连接到服务器
山东网络安全科技有限公司
mysql数据库数据清洗
怎么使用魔方创建数据库
sybase数据库售价
澳門网络安全法
埃森哲软件开发工程师定制班
网络技术应用资料
税盘访问数据库错误是什么意思
吉林省上网dns服务器地址
蚂蚁花呗的数据库
电脑不允许连接到此数据库
万维网络安全知识
韩天明的服务器叫什么名字
数据库精英
定制服务器机箱是什么
数据库与程序设计 习题
苏州计算机软件开发流程
老师如何维护网络安全
我的世界小服务器招收管理员