我可以声明一个函数指针作为参数的函数,
int bar(int (* a)()) { } // this works
我可以将const限定符应用于此参数
int bar(int (* const a)()) { } // this works
但是当我将restrict限定符应用于此参数时,我收到错误
int bar(int (* restrict a)()) { }
test.c:10:1: error: invalid use of ‘restrict’
int bar(int (* restrict a)())
我正在使用cc
0 % gcc --version
gcc (GCC) 7.3.0
答案 0 :(得分:2)
只有指向对象的指针可能是restrict
限定的:
§6.7.3类型限定符
- 引用类型为对象类型的指针类型以外的类型不应受限制。
醇>
函数不是对象:
§3.15.1对象
执行环境中的数据存储区域的内容 它可以代表值