我試圖利用單個函數調用來訪問一個名爲「Data」的類的多個數據成員。在這個特定的例子中,我正在訪問從物理陀螺儀傳感器饋給該類的數據。這是我有:通過單個函數調用訪問特定的相關成員變量的最有效方法是什麼?
template <typename T>
T Data<T>::getGyro_euler(char c)
{
switch (c)
{
case 'x': return m_eulerX;
case 'y': return m_eulerY;
case 'z': return m_eulerZ;
default: return 0;
}
}
這個函數使用的數據類型始終爲一個浮動或雙。
在這種情況下,性能比清晰度更重要,因爲它運行在一個已經負擔過重的Arduino上,需要執行任務關鍵任務,但是對於手動將一個字符傳遞給一個函數以獲得一個可變的變量。
我有很多像這樣的函數需要傳遞很多變量,因此每個變量的getter函數在代碼中都會變得非常重要。
有沒有更有效的方法來做到這一點?有沒有更好,更清晰的方式來完成同樣的事情而不犧牲性能?
三個功能應該不會影響性能。與你的代碼相比,它甚至應該增加。 – tkausl
我想內聯函數可能會提高性能,但需要花費一些空間。 – Mark
需要更多的上下文才能正確回答這個問題;你爲什麼需要三軸開關?另外,一個好的編譯器會從最終代碼中消除任何獲取者的痕跡。你檢查了結果代碼? – rustyx