如何用C 獲取執行時變數的型別

2021-08-26 03:57:35 字數 708 閱讀 3206

在上秦小麟老師的資料庫實現技術的時候,老師提到了乙個問題:如何在執行時獲取乙個變數的型別,這用c實現好像要大費周折。今天正好碰到乙個問題想看看c++stl中的sort演算法的實現,發現裡面有個技巧可以很容易做到這一點。我就立刻自己做了乙個實驗。如下可以獲取執行時變數的型別。

其中心思想就是,運用模板函式的過載,是什麼型別的引數就去呼叫引數是那個型別的函式。這樣就讓編譯器去自己識別,而編譯器當然知道每個變數的型別。這讓我想去**那些我經常用到的stl演算法的實現,如果你也經常使用,何不藉此機會好好研究一下呢?我感覺至少有幾個好處。

1 增強對c++語言的理解

2 增強程式的設計能力

3 增強演算法分析與設計的能力

#include

using namespace std;

void printtype(int t)

void printtype(char t)

void printtype(long t)

templateinline

void valuetype(t t)

int main()

int printtype(char t)

int printtype(long t)

templateinline

int valuetype(t t)

int main()

{int a;

char c;

cout<

如何用C 獲取執行時變數的型別

在上資料庫實現技術的時候,老師提到了乙個問題 如何在執行時獲取乙個變數的型別,這用c實現好像要大費周折。今天正好碰到乙個問題想看看c stl中的sort演算法的實現,發現裡面有個技巧可以很容易做到這一點。我就立刻自己做了乙個實驗。如下可以獲取執行時變數的型別。其中心思想就是,運用模板函式的過載,是什...

C 獲取程式執行時間

命名空間 system.diagnostics stopwatch 例項可以測量乙個時間間隔的執行時間,也可以測量多個時間間隔的總執行時間。在典型的 stopwatch 方案中,先呼叫 start 方法,然後呼叫 stop 方法,最後使用 elapsed 屬性檢查執行時間。stopwatch 例項或...

C 獲取函式執行時間

第一種方法 gettickcount 獲取系統啟動後的時間間隔,精確度有限,跟cpu有關。第二種方法 queryperformancecounter 這個函式返回高精確度效能計數器的值,它可以以us為單位計時.但是它確切的精確計時的最小單位是與系統有關的,所以,必須要查詢系統以得到queryperf...