来自 C11 草案:
C11 (n1570), § K.3.5.1.1 The
tmpfile_s
function
errno_t tmpfile_s(FILE * restrict * restrict streamptr);
restrict
限定词的目的是什么?
因为没有其他参数,编译器能够知道 streamptr
没有 restrict
没有别名,不是吗?
最佳答案
周围有几个具有 FILE*
类型的全局变量,例如 stdout
和 stderr
。所以最左边的 restrict
清楚地表明这些都不能返回,返回的 FILE*
不与任何其他别名。第二个 restrict
做出相同的保证,但更高一级,您不能在该函数中传递类似 &stderr
的内容。 (嗯,stderr
不一定是通常意义上的变量,但我希望你能看到图片。)
关于c - tmpfile_s 中限制的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13893485/