|
>Date: Thu, 02 Nov 2000 13:28:14 -0800 >From: Jim Langston <jimlangston@conexfreight.com> > > > ... RPG data structures always have contiguous > > storage. ... > >Hmm.. I'm not sure if I agree with that statement. What about this? > >D BB S 10A > >D MyStru DS >D AA 10A >D BB 10A >D CC 10A > >Not positive this will compile, but you should get the idea. > >This is more commonly seen in File structures, however, but think of >the case where you are using a variable in a Data Structure that also >exists in your file's DDS. > >I would not guarantee that AA BB and CC were all stored contiguously with >each other. Jim, BB can't be both a standalone field and a subfield in a data structure. You are confused by the I specs for a file which are not definitions at all; they are more like MOVE operations from the input buffer to a program variable. I specs are not definitions; the compiler will use the I spec to generate a definition for you if the field is not already defined elsewhere. Consider this: ISOMEFILE ... I 1 10 FLD1 I 1 10 FLD2 If these I specs truly represented a structure, then FLD1 and FLD2 would be the same storage location, and a change to FLD1 would be reflected in the value of FLD2. But in fact, these two I specs just say to move the same buffer contents to two different fields. Quiz: Ffile1 if f 10 disk Ffile2 if f 10 disk Ifile1 ns 01 I p 1 3 0fld1 I s 1 5 0fld2 I b 1 2 0fld3 Ifile2 ns 01 I s 1 5 0fld1 I p 1 3 0fld2 I b 1 2 0fld3 a. Are these I specs legal? b. What would the cross reference show as the data type of fields FLD1, FLD2 and FLD3 (zoned, packed or binary?) By the way, RPG _does_ guarantee that AA, BB and CC are contiguous (assuming you remove the illegal declaration of the standalone field BB). The manual says: "The ILE RPG compiler allows you to define an area in storage and the layout of the fields, called subfields, within the area. This area in storage is called a data structure." Barbara Morris, IBM Toronto Lab, RPG Compiler Development +--- | This is the RPG/400 Mailing List! | To submit a new message, send your mail to RPG400-L@midrange.com. | To subscribe to this list send email to RPG400-L-SUB@midrange.com. | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
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.