使用restrict关键字时出错

veh*_*zzz 5 c c++ optimization restrict-qualifier

在以下示例中:

void foo (double *ptr)
{
     const double * restrict  const restr_ptr=ptr;
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

error: expected a ";"      const double * restrict  const restr_ptr=ptr;
                                                      ^
Run Code Online (Sandbox Code Playgroud)

我用-std = c99编译,使用gcc 3.4

有任何想法吗?

Rob*_*edy 9

在C++中,restrict不是关键字(Microsoft扩展除外).它并不意味着它在C中做了什么.看起来好像你试图将C99模式应用于你的C++编译器.使用C编译器编译C代码,并使用C++编译器编译C++.这两种语言都不是另一种语言的子集.

  • 试试`__restrict`.看起来它是GCC扩展以及Microsoft扩展.考虑用宏来抽象它,所以非GCC,非MS编译器不会扼杀它. (4认同)