| **Navigation:**  [[introduction.htm|Language Reference]] > 2 - Program Source Code Format > Compiler Directives >====== SIZE (memory size in bytes) ====== | [[section specify source code section .htm|{{btn_prev_n.gif|Previous page}}]][[introduction.htm|{{btn_home_n.gif|Return to chapter overview}}]][[variable declarations.htm|{{btn_next_n.gif|Next page}}]] | | || {{newc7.jpg|NewC7.jpg}} | | | | //variable// | | | | | | **SIZE(** | | //constant// | | **)** | | | | | | //picture// | | | | {{blk2blue.jpg|blk2blue.jpg}} | **SIZE** | Supplies the amount of memory used for storage. | | //variable// | The label of a previously declared variable. | | //constant// | A numeric or string constant. | | //picture// | A picture token. | **SIZE** directs the compiler to supply the amount of memory (in bytes) used to store the //variable//, //constant//, or //picture//. SIZE can also be used at run time. The compiler is smart in handling SIZE. If the size of the data is known at compile time, the compiler will use it. Otherwise, the compiler generates code to evaluate SIZE at run time. For example, at run time: ·The size of a STRING, CSTRING, PSTRING and GROUP (including RECORD) pointed to by a given reference variable is retrieved from that variable. ·The size of a BLOB is retrieved by the call to appropriate RTL functions. ·The size of an array with variable dimensions is calculated on the basis of the size of one entry and number of actual elements of that array. **Example:** **SavRec  STRING(1),DIM(****SIZE****(Cus:Record)             !Dimension the string to size of record** **StringVar STRING(****SIZE****('SoftVelocity Corporation')) !A string long enough for the constant** **LOOP I# = 1 TO ****SIZE****(ParseString)                   !Loop for number of bytes in the string** **PicLen = ****SIZE****(@P(###)###-####P)                    !Save size of the picture** **tmp   LONG** **str1   STRING(15)** **str2   CSTRING(16)** **str3   &STRING** **str4   &CSTRING** ** CODE** ** str3 &= NEW(STRING(17))** ** str4 &= NEW(CSTRING(18))** ** tmp = SIZE(str1)   ! returns 15** ** tmp = SIZE(str2)   ! returns 16** ** tmp = SIZE(str3)   ! returns 17** ** tmp = SIZE(str4)   ! returns 18** **See Also:** [[len return length of string .htm|LEN]] [[prop size.htm|Prop:Size]] [[file structure properties.htm|FILE Structure Properties]]