변수형

CUBLOC2는 32비트 아키텍처에 최적화된 5가지 데이터 타입을 지원합니다. (※ String 형은 지원하지 않습니다.)

  • Byte: 8비트 부호 없는 정수 (0 ~ 255)
  • Integer: 32비트 부호 있는 정수 (-2,147,483,648 ~ 2,147,483,647)
  • Single: 32비트 부동 소수점 실수 (±3.402823E+38)
  • Long: 64비트 부호 있는 정수 (-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)
  • Double: 64비트 부동 소수점 실수 (±1.7976931348623157E+308)

Dim 명령을 사용하여 변수를 선언하며, 쉼표(,)를 이용한 연속 선언이 가능합니다.

Dim I As Integer              ' 단일 변수 선언
Dim A As Byte, B As Integer   ' 복수 변수 동시 선언
Dim L As Long                 ' 64비트 정수 선언
Dim D As Double               ' 64비트 실수 선언

변수명은 대소문자를 구분하지 않습니다.

문자열 처리 방식의 변화

CUBLOC2에서는 기존의 문자열(String) 변수 형식을 지원하지 않는 대신, 1차원 Byte 배열을 사용하여 문자열을 관리합니다.

주요 특징

  • 자동 배열 크기 할당: 배열 선언 시 크기를 지정하지 않아도 대입되는 문자열 길이에 맞춰 메모리 공간이 자동으로 확보됩니다.
  • Null 종결자: 모든 문자열의 끝에는 종료를 알리는 Null(0x00)문자가 자동으로 삽입됩니다.
  • 유니코드 지원 (UTF-8): 한글은 UTF-8 방식으로 인코딩되어 저장됩니다. (한글 1 글자당 3바이트 소요)

코드 예시

' 1차원 Byte 배열로 문자열 선언 (명시적 선언)
Dim Str() As Byte = "Comfile Technology" 
' Byte 자료형 생략 가능 
Dim Str() = "Comfile Technology" 
' 한글 저장 (UTF-8 인코딩이므로 한 글자당 3바이트입니다.)
Dim Str() = "아름다운우리나라" '8글자이지만 24바이트를 차지합니다.
참고: 문자열 끝에 자동으로 Null 문자가 추가되므로, 실제 할당되는 배열의 크기는 (문자열 바이트 길이 + 1)이 됩니다.

배열 (Array)

CUBLOC2에서 제공하는 배열의 규격과 Sub/Function에서의 활용 방법입니다.

1. 배열초기화

배열 선언 시 크기를 지정하지 않아도, 나열된 초기화 데이터의 개수에 맞춰 배열 크기가 자동으로 결정됩니다. (단, 1차원 배열 초기화 시 적용)

Dim Abc() As Integer = (123,3,2,1,2,3,3) 

2. 배열의 차원 제한

  • CUBLOC2는 최대 2차원 배열까지만 지원합니다.
  • 3차원 이상의 다차원 배열은 선언 및 사용이 불가능합니다.
Dim Ary(10) As Integer       ' 1차원 배열 (지원)
Dim Ary(10,20) As Integer    ' 2차원 배열 (지원)
Dim Ary(10,20,30) As Integer ' 3차원 배열 (지원 안 함)

3. 배열의 인자 전달 (참조 호출)

배열을 Sub 또는 Function의 인자로 전달할 수 있습니다. 이때 배열은 참조(Reference) 방식으로 전달되므로, 서브 루틴 내부에서 배열 값을 변경하면 원본 배열의 값도 함께 변경됩니다.

  • 주의: 2차원 이상의 배열은 인자로 전달할 수 없으며, 오직 1차원 배열만 가능합니다.

사용 예시

Dim Ary(10) As Integer
' 1차원 배열명을 인자로 사용하여 Sub 호출
AryModify(Ary) 
Sub AryModify(MyAry() As Integer)
    ' 참조형으로 전달되었으므로, MyAry의 조작은 원본 전역 변수 Ary에 반영됩니다.
    MyAry(0) = 1  ' 실제로는 Ary(0)의 값이 1로 변경됨
End Sub
참고: 배열을 인자로 받을 때는 `Sub 명칭(배열명() As 타입)`과 같이 빈 괄호를 사용하여 배열임을 명시해야 합니다.

← CUBLOC2 목차로 돌아가기