| **Navigation:**  [[introduction.htm|Language Reference]] > 3 - Variable Declarations > Data Types >====== LONG (four-byte signed integer) ====== | [[ushort two byte unsigned integer .htm|{{btn_prev_n.gif|Previous page}}]][[introduction.htm|{{btn_home_n.gif|Return to chapter overview}}]][[ulong four byte unsigned integer .htm|{{btn_next_n.gif|Next page}}]] | | || {{newc7.jpg|NewC7.jpg}} | label | **LONG(**[//initial value//]**)** | [,**DIM( )**] [,**OVER( )**] [,**NAME( )**] [,**EXTERNAL**] [,**DLL**] [,**STATIC**] | | | | [,**THREAD**] [,**AUTO**] [,**PRIVATE**] [,**PROTECTED**] | {{blk2blue.jpg|blk2blue.jpg}} | **LONG** | A four-byte signed integer. | **Format: ± magnitude** **| |................... |** **Bits: 31 30 0** **Range: -2,147,483,648 to 2,147,483,647** | //initial value// | A numeric constant. If omitted, the initial value is zero, unless the AUTO attribute is present. | | **DIM** | Dimension the variable as an array. | | **OVER** | Share a memory location with another variable. | | **NAME** | Specify an alternate, "external" name for the field. | | **EXTERNAL** | Specify the variable is defined, and its memory is allocated, in an external library. Not valid within FILE, QUEUE, or GROUP declarations. | | **DLL** | Specify the variable is defined in a .DLL. This is required in addition to the EXTERNAL attribute. | | **STATIC** | Specify the variable's memory is permanently allocated. | | **THREAD** | Specify memory for the variable is allocated once for each execution thread. Also implicitly adds the STATIC attribute on Procedure Local data**.** | | **AUTO** | Specify the variable has no //initial value//. | | **PRIVATE** | Specify the variable is not visible outside the module containing the CLASS methods. Valid only in a CLASS. | | **PROTECTED** | Specify the variable is not visible outside base CLASS and derived CLASS methods. Valid only in a CLASS. | **LONG** declares a four-byte signed integer, using the Intel 8086 long integer format. The high-order bit is the sign bit (0 = positive, 1 = negative). Negative values are represented in standard two's complement notation. {{newcnet.jpg|NewCNet.jpg}} The equivalent of a Win32 LONG in Clarion.NET is the [[clalong four byte signed integer .htm|CLALONG]] type. Use of LONG in Clarion.NET programs are equivalent to the INT64 .NET data type. **Example:** **Count1 LONG                         !Declare four-byte signed integer** **Count2 LONG,OVER(Count1)            !Declare OVER the four-byte signed integer** **Count3 LONG,DIM(4)                  !Declare it an array of 4 longs** **Count4 LONG(5)                      !Declare with initial value** **Count5 LONG,EXTERNAL                !Declare as external** **Count6 LONG,EXTERNAL,DLL            !Declare as external in a .DLL** **Count7 LONG,NAME('SixCount')        !Declare with external name** **ExampleFile FILE,DRIVER('Clarion')  !Declare a file** **Record       RECORD** **Count8        LONG,NAME('Counter')  !Declare with external name** **             END** **            END** **See Also**: [[clarion net data type comparison chart.htm|Clarion# Data Type Comparison Chart]]