typedef 和 using 的區別

2021-10-10 03:18:23 字數 573 閱讀 2418

定義別名,用於簡化複雜的變數型別巢狀,增加**可讀性,便於優化維護。

typedef std::vector>>> v_s_mp_int2_ii;

引入命名空間

using namespace std;

定義別名,類似於typedef

using v_s_mp_int2_ii = std::vector>>> ;
相對於typedef,語法上更能契合人類從左到右的閱讀順序,更加容易理解。

// error: a typedef cannot be a template

template typedef aa<_t> aclass;
typedef不能夠直接給模板類進行取別名。

template using aclass = aa<_t>;
則編譯通過,並且正確執行。

typedef和define具體的詳細區別

1 define是預處理指令,在編譯預處理時進行簡單的替換,不作正確性檢查,不關含義是否正確照樣帶入,只有在編譯已被展開的源程式時才會發現可能的錯誤並報錯。例如 define pi 3.1415926 程式中的 area pi r r 會替換為3.1415926 r r 如果你把 define語句中...

typedef和define具體的詳細區別

1 define是預處理指令,在編譯預處理時進行簡單的替換,不作正確性檢查,不關含義是否正確照樣帶入,只有在編譯已被展開的源程式時才會發現可能的錯誤並報錯。例如 define pi 3.1415926 程式中的 area pi r r 會替換為3.1415926 r r 如果你把 define語句中...

(程式設計基礎)define和typedef的區別

define和typedef有兩個主要的區別 1 可以使用其他型別說明符對巨集型別名進行擴充套件,但是對typedef所定義的型別名不能擴充套件 2 在連續的幾個變數的宣告中,用typedef定義的型別可以保證宣告中所有的變數均為同一種型別,但是define無法保證 具體的兩個區別如下 includ...