fopen(3),fopen(3p)的区别是什么

C语言 码拜 3年前 (2017-04-15) 233次浏览
FILE *fopen(const char *restrict pathname, const char *restrict mode);
FILE *fopen(const char *path, const char *mode);

当本人写fopen(参数1,参数2),那调用的是哪一个函数呢?

解决方案

10

FILE *fopen( const char *filename, const char *mode );(until C99)
FILE *fopen( const char *restrict filename, const char *restrict mode );(since C99)

10

3指man section 3
3p指man section 3 posix
两个fopen的差异如一楼所说,restrict是C99的新关键字,可以指导编译器做优化。
假如不理解这个关键字,你可以认为它不存在,两个fopen就是一样的,不影响逻辑使用。

40

第二个是C99标准之前,第一个是从C99开始
看你使用的是哪个标准
http://en.cppreference.com/w/c/io/fopen

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明fopen(3),fopen(3p)的区别是什么
喜欢 (0)
[1034331897@qq.com]
分享 (0)