在Ada中实现与函数的变量数据耦合(类似于C中函数的静态变量)

在Ada中实现与函数的变量数据耦合(类似于C中函数的静态变量),c,ada,static-variables,C,Ada,Static Variables,例如,在C语言中,静态变量有一个属性,即使在超出其作用域后也能保持其值。因此,静态变量在其以前的作用域中保留其以前的值,并且不会在新的作用域中再次初始化 如何在Ada语言中实现相同的功能,确保变量一直存在到程序结束,但其范围应限于函数,因此也应确保数据耦合?只要程序运行,直接在包规范和主体中声明的变量将保持其状态 不能将变量保持在子程序的本地,但可以在包内声明单个子程序,并在包体中声明持久变量。Packages。它们导出函数,但在私有部分或包体中声明的任何变量仅对这些函数可见。(这只是一个包的一

例如,在C语言中,静态变量有一个属性,即使在超出其作用域后也能保持其值。因此,静态变量在其以前的作用域中保留其以前的值,并且不会在新的作用域中再次初始化


如何在Ada语言中实现相同的功能,确保变量一直存在到程序结束,但其范围应限于函数,因此也应确保数据耦合?

只要程序运行,直接在包规范和主体中声明的变量将保持其状态


不能将变量保持在子程序的本地,但可以在包内声明单个子程序,并在包体中声明持久变量。

Packages。它们导出函数,但在私有部分或包体中声明的任何变量仅对这些函数可见。(这只是一个包的一个用途。)如果要使变量仅对包内的一个函数可见,而不是对同一个包中的所有函数可见,怎么办?如果您需要,没有人会阻止您为该函数提供自己的包(或子包)。如果您在包体中声明变量,它只对在它之后声明的子程序可见。这是其中的一部分。