c++奇技-关键字

1.inline

内联函数,在调用处直接将函数体替换,少一次函数调用。

2.constexpr  constexpr表达式是指值不会改变并且在编译过程就能得到计算结果的表达式

3 #define pi 3.14159f; 如果不加最后的则pi的类型将会是double,他参与计算的表达式也将默认变为double类型,在cuda中会严重影响性能,至少你可能是希望32位浮点下的计算,一不小心变双精度浮点了。

4 #program unroll 强制for循环展开,一般应用于判断语句比较简单,且执行次数编译期就可知的情况,比如下面。

int sum=0;
for(int i=0;i<100;i++)
{
    sum+=pow(3,i);
}

5__restrict

当对指针增加 __restrict 修饰之后,表示当前指针在存活期间是独占内存的,不会有其他指针指向这个地址。编译器在知道这个信息之后,就可以做出优化,从而提升性能。

用对象指针来调用一个函数,有以下两种情况:

  1. 如果是虚函数,会调用派生类中的版本。
  2. 如果是非虚函数,会调用指针所指类型的实现版本。

你可能感兴趣的:(c++,开发语言)