Fortran Coder

查看: 1178|回复: 3
打印 上一主题 下一主题

[子程序] 关于声明语句和执行语句

[复制链接]

9

帖子

3

主题

0

精华

入门

F 币
49 元
贡献
21 点
跳转到指定楼层
楼主
发表于 2023-11-7 21:03:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
根据我的理解,每一次调用fcode_video_test函数,都会开辟一个新栈,然后分配内存给局部变量,或者对全局静态变量进行赋值。所以每次调用这个函数就是对全局变量V进行一次赋值,调用这个函数几次就是赋值几次,难道不对吗?所以我对截图最后一句话很不理解。

分享到:  微信微信
收藏收藏1 点赞点赞 点踩点踩

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
沙发
发表于 2023-11-7 21:20:03 | 只看该作者
这一句是告诉编译器 v是静态变量,并且编译时给它一个初始值2。这一句中的赋值操作只在编译时进行,调用的时候不进行。

1.png (24.5 KB, 下载次数: 187)

1.png

9

帖子

3

主题

0

精华

入门

F 币
49 元
贡献
21 点
板凳
 楼主| 发表于 2023-11-7 22:29:25 | 只看该作者
li913 发表于 2023-11-7 21:20
这一句是告诉编译器 v是静态变量,并且编译时给它一个初始值2。这一句中的赋值操作只在编译时进行,调用的 ...

明白了,由于不是执行语句,所以每次调用这个函数的时候不会给V赋值2.

不过,如果函数中的局部变量的声明,应该是执行的,因为局部变量要临时分配内存,等效于执行了,我的理解对不对?

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
地板
发表于 2023-11-8 11:18:45 | 只看该作者
局部变量,每次调用会重新分配内存。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-23 01:25

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表