|
Running the program again wouldn't you see 2, 12, 1, 11? --dave -----Original Message----- >Can you elaborate a little on "static storage"...? Static storage is "left alone" between program calls. It isn't initialised. * Demonstrate static storage h debug dftactgrp(*no) actgrp('QILE') option(*srcstmt: *nodebugio) * dbgview(*list) d incrAndDisplay pr c callp incrAndDisplay c eval *inlr = *on p incrAndDisplay b d incrAndDisplay pi d countStatic s 10i 0 static d countStaticInz s 10i 0 static inz(10) d countAuto s 10i 0 d countAutoInz s 10i 0 inz(10) c eval countStatic = countStatic + 1 c eval countStaticInz = countStaticInz + 1 c eval countAuto = countAuto + 1 c eval countAutoInz = countAutoInz + 1 c countStatic dsply c countStaticInzdsply c countAuto dsply c countAutoInz dsply p e A traditional OPM program you'd expect to see that every one of these variables gets initialised every time the program is called. The two variables marked with the 'static' keyword won't. Call this program. The first time it runs you'll see 1, 11, 1, 11. Run it again and you'll see 1, 12, 1, 11. Now do a RCLACTGRP QILE and run it again. A new AG('QILE') will be created and statuc storage initialised, so you'll see 1, 11, 1, 11 again. Static storage is handy when you need to keep track of something all day long, like the last time the function was called, or a count of how many jobs are using it. --buck
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.