91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中odr怎么用

發布時間:2021-09-13 12:47:55 來源:億速云 閱讀:146 作者:小新 欄目:開發技術

這篇文章主要介紹了C++中odr怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

// The main module. File: odr_test1.cpp 
 
#include <iostream>
 
void 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
 
#include <iostream>
 
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 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上運行的結果為:

C++中odr怎么用

2、使用clang進行編譯

clang++ module1.cpp odr_test1.cpp

 運行結果:

C++中odr怎么用

若進行下面的編譯:

clang++ odr_test1.cpp module1.cpp

 則結果如下 

C++中odr怎么用

3、使用gcc編譯

g++ module1.cpp odr_test1.cpp -std=c++11

 C++中odr怎么用

若進行如下編譯

g++ odr_test1.cpp module1.cpp -std=c++11

C++中odr怎么用

二、如何解決這個問題

// The main module. File: odr_test2.cpp
#include <iostream>
void 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
 
#include <iostream>
 
namespace
{
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++中odr怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

武功县| 石棉县| 威海市| 习水县| 蓝田县| 武穴市| 彰化市| 平塘县| 孙吴县| 海晏县| 蒲城县| 沐川县| 巴林右旗| 沙河市| 金塔县| 泸州市| 九寨沟县| 广宗县| 吉木萨尔县| 微博| 淮滨县| 和平县| 馆陶县| 宣武区| 黎平县| 容城县| 家居| 四会市| 浮山县| 博野县| 卢龙县| 巴青县| 瑞金市| 江口县| 文成县| 绥芬河市| 镇赉县| 桦甸市| 中牟县| 银川市| 金阳县|