Fortran Coder

查看: 2895|回复: 5
打印 上一主题 下一主题

[子程序] 多次调用子例程,子例程中的数组和结构体的初始化问题

[复制链接]

10

帖子

3

主题

0

精华

入门

F 币
41 元
贡献
29 点
跳转到指定楼层
楼主
发表于 2022-2-18 13:14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有些子例程会被多次调用,但子例程中的数组和结构体都没有初始化,因此,第二次调用的时候数组和结构体的初始值直接就是第一次调用后运算的结果,这就导致第二次调用运算的结果与真实的结果有细微的差别甚至会是天差地别。
原想着可以一个个地进行初始化,但程序太大了,一来工作量会很大,二来说不定就会有遗漏
所以想请教各位大神怎么才能快速地解决这个问题啊?
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

10

帖子

3

主题

0

精华

入门

F 币
41 元
贡献
29 点
沙发
 楼主| 发表于 2022-2-18 13:17:32 | 只看该作者
编译环境是IVF

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
板凳
发表于 2022-2-18 17:00:59 | 只看该作者
本帖最后由 vvt 于 2022-2-18 17:02 编辑

每次进入子程序时,其局部变量的值,都是不确定的(注意,不能确保是上一次的值,除非他具有save属性)

必须手动初始化,才能保证是0值。别无他法

10

帖子

3

主题

0

精华

入门

F 币
41 元
贡献
29 点
地板
 楼主| 发表于 2022-2-18 17:46:36 | 只看该作者
vvt 发表于 2022-2-18 17:00
每次进入子程序时,其局部变量的值,都是不确定的(注意,不能确保是上一次的值,除非他具有save属性)

必 ...

谢谢!
但调试发现,第一次调用的时候,数组和结构体没有初始化,却默认为0;只是后面接着调用的时候才会是上一次调用运行的结果

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
5#
发表于 2022-2-18 19:21:52 | 只看该作者
律1234 发表于 2022-2-18 17:46
谢谢!
但调试发现,第一次调用的时候,数组和结构体没有初始化,却默认为0;只是后面接着调用的时候才会 ...

你调试发现的情况,是“不确定”的一种情况。
不能保证总是这样。所以称之为“不确定”

10

帖子

3

主题

0

精华

入门

F 币
41 元
贡献
29 点
6#
 楼主| 发表于 2022-2-18 19:48:45 | 只看该作者
vvt 发表于 2022-2-18 19:21
你调试发现的情况,是“不确定”的一种情况。
不能保证总是这样。所以称之为“不确定” ...

原来如此,多谢了
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-26 15:06

Powered by Tencent X3.4

© 2013-2024 Tencent

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