【发布时间】:2018-10-09 15:25:41
【问题描述】:
我了解restrict 的含义,但我对这种用法/语法有点困惑:
#include <stdio.h>
char* foo(char s[restrict], int n)
{
printf("%s %d\n", s, n);
return NULL;
}
int main(void)
{
char *str = "hello foo";
foo(str, 1);
return 0;
}
用gcc main.c -Wall -Wextra -Werror -pedantic编译成功
在这种情况下,restrict 是如何工作并由编译器解释的?
gcc 版本:5.4.0
【问题讨论】:
-
必须和
restrict char *s一样。 -
@FiddlingBits,或者,
char * restrict s? -
@SouravGhosh 感谢您的更正。
restrict char *s产生编译器错误;char * restrict s没有。
标签: c gcc restrict-qualifier