最近做Exit module是,遇到static variable,从SAP help的解释中发现其和印象中的概念有出入,因此对其作如下的小结,主要是个人理解和翻译,如有出入,欢迎大家指正。
首先是 static variable的使用范围: SAP help
1. subroutines
2. function module
3. static methods
static variable和Data变量一样,只能在有效范围内使用,超出其使用范围就不可视了。但static variable的特殊性是,子程序中static variable的最终值能在其范围外的main program的过程中保持不变,下次再进入该子程序(以上的static variable的使用范围)时,就在原有的值上进行相应操作了。
对于例子,SAP help也给出了相应的例子,我作出相应的改动,示例如下:
DO 10 TIMES.
PERFORM add_one.
ENDDO.
FORM add_one.
DATA local TYPE i VALUE 10.
STATICS static TYPE i VALUE 10.
STATICS text TYPE i.
local = local + 1.
static = static + 1.
text = text + 1.
WRITE: / 'local ', local.
WRITE: / 'static',static.
WRITE: / 'text ', text.
ENDFORM.
运行结果如下:
local 11
static 11
text 1
local 11
static 12
text 2
local 11
static 13
text 3
local 11
static 14
text 4
local 11
static 15
text 5
local 11
static 16
text 6
local 11
static 17
text 7
local 11
static 18
text 8
local 11
static 19
text 9
local 11
static 20
text 10
本文详细解析了SAP环境中静态变量的使用范围及其独特功能,通过实例展示了静态变量如何在子程序中保持状态并在多次调用间延续效果。分析了静态变量与常规数据变量的区别,并提供了具体的代码示例以辅助理解。

被折叠的 条评论
为什么被折叠?



