簡體   English   中英

整數類型之間的轉換成本

[英]Cost of conversion between integral types

我正在創建在程序中使用的數學函數補充庫,並希望實現gcd函數 我可能會經常使用此功能,因此優化非常重要

我想知道關於優化,是否有必要為不同的整數類型實現幾個gcd重載。 如圖所示:

int gcd(const int lhs, const int rhs);
long gcd(const long lhs, const long rhs);
long long gcd(const long long lhs, const long long rhs);

在整數類型之間進行轉換時會產生固有成本嗎?還是我可以只實現long long版本並將其稱為“足夠好”?

好吧,首先,您可以將其模板化:

template <typename T>
T gcd(const T lhs, const T rhs);

如果您最關心的只是代碼復制,請調用gcd<int>(a, b)或所需的任何類型。

就是說,雖然我懷疑整數類型轉換是否會在概要分析中顯示出來,但是您應該首先以最方便的方式編寫這種東西,並且擔心是否確實需要對它進行優化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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