在C语言中使用FILE变量的地址和FILE *有什么区别?

卡里姆

给出以下简短示例

FILE *p = fopen("foo.txt", "r");
FILE f = *p;

int i;
fscanf(p, "%i", &i); // works just fine
fscanf(&f, "%i", &i); // segmentation fault

我读了关于小FILEFILE *以及实际的结构类型_IO_FILE,但它是不是真的我清楚是什么原因导致在第二次调用分段错误fscanf

因此,除了p&f包含不同的地址,除非这是参与(我认为这是),之间有什么区别&f,并p在这方面?

代词

C标准(C99 7.19.3 / 6,C11 7.21.3 / 6)说:

用于控制流的FILE对象的地址可能很重要。不需要提供FILE对象的副本来代替原始对象。

所以你被警告了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

与在C语言中使用'\ n'和'\ 12'有什么区别

来自分类Dev

与在C语言中使用'\ n'和'\ 12'有什么区别

来自分类Dev

“ as?”,“ as!”和“ as”有什么区别?

来自分类Dev

$ *和$ @有什么区别

来自分类Dev

$和〜有什么区别?

来自分类Dev

/ * ... * /和/ ** ... * /有什么区别

来自分类Dev

!=和<>有什么区别?

来自分类Dev

ö和ö有什么区别?

来自分类Dev

$ *和$ @有什么区别?

来自分类Dev

“ ==”和“ =〜”有什么区别?

来自分类Dev

= +和+ =有什么区别

来自分类Dev

$ @和$ *有什么区别

来自分类Dev

+ =和+有什么区别?

来自分类Dev

$ _和!$有什么区别?

来自分类Dev

\ 和 \\ 有什么区别

来自分类Dev

泄漏和地址有什么区别?

来自分类Dev

这些在C语言中的访问有什么区别?

来自分类Dev

在C语言中,普通数组和使用malloc创建的数组有什么区别?

来自分类Dev

C语言中的random和Java语言中的random有什么区别吗?

来自分类Dev

C语言中的random和Java语言中的random之间有什么区别吗?

来自分类Dev

*和*&在C ++中有什么区别?

来自分类Dev

&&和||和有什么区别?

来自分类Dev

!= null和!== null有什么区别?

来自分类Dev

ConnectEx和_ConnectEx有什么区别?

来自分类Dev

LDADD和LIBADD有什么区别?

来自分类Dev

tempfile和mktemp有什么区别?

来自分类Dev

setFocusable和setFocusableInTouchMode有什么区别?

来自分类Dev

MySQLi和PDO有什么区别?

来自分类Dev

Jini和RMI有什么区别?