md5*_*md5 7 c restrict c11 restrict-qualifier
从C11草案:
C11(n1570),§K.3.5.1.1该
tmpfile_s功能
errno_t tmpfile_s(FILE * restrict * restrict streamptr);
restrict这里有资格赛的目的是什么?
因为没有其他参数,编译器能够知道streamptr没有别名restrict,不是吗?
中有很多的全局变量具有类型FILE*,如stdout和stderr例如.所以最左边restrict清楚地表明这些都不能返回,返回的FILE*不会与其他任何别名相同.第二个提供restrict相同的保证,但更高一级,你不允许传递类似于&stderr该功能的东西.(好吧stderr不一定是通常意义上的变量,但我希望你能看到这张照片.)