c++有哪些像__gcd這樣的編譯器自帶函數?
01-04
如題
太多了。在這個頁面搜索built可以看到大部分。
https://gcc.gnu.org/onlinedocs/gcc/
這個頁面是比較有用的一些https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#Other-Builtins常用的譬如__builtin_popcount用來算一個int里1的個數。你說的這些函數, @莫濤 已經說了,我就再補充一些東西吧。
你說的這個其實是編譯器後端可以識別的函數,我們編譯器前端不會做任何事情,只是識別後就完全傳遞給編譯器後端。一般這樣的函數被稱為built in函數,如__builtin_printf,同時還有一些特定的編譯器支持的函數,也可以被編譯器後端識別,如我們IBM XL C++ Compiler支持vector操作的vec_perm函數等。
而這樣的built in函數由於是編譯器內置來做的,所以有時候可以做一些很有趣的東西,比如下面的代碼:
int main()
{
int i = 0;
// checks whether ++i is a constant expression, does not evaluate ++i
bool b = __builtin_constant_p (++i);
// output: 0,0
__builtin_printf("%d, %d
", i, b);
return 0;
}
請問這個函數是哪個頭文件裡面的啊?
給大家推薦一個學習的博客 這個博客 有很多關於iOS開發的技術總結 GCD相關介紹及使用實例
https://chuliangliang.github.io
推薦閱讀:
※為什麼 VC 不允許 x64 內聯彙編?
※什麼語言最適合寫編譯器/解釋器?
※vector<vector<int> >中>>之間的空格是否是必須的?
※Visual Studio 為何沒有 64 位的版本?
※Visual C++ 6以debug模式編譯很拙笨,為何要做無用功?