버퍼 생성 함수 (buffer_create)
이 문서는 buffer_create
함수에 대해 설명합니다. 이 함수는 새로운 버퍼를 생성하고 이를 반환합니다. 버퍼는 다양한 유형의 데이터를 저장하기 위해 메모리의 일부를 할당합니다. 데이터를 버퍼에 쓸 때는 buffer_write
, buffer_poke
, 또는 buffer_fill
함수를 사용합니다.
버퍼 유형 정의
버퍼의 유형을 정의하기 위해 다음 상수를 사용할 수 있습니다. 버퍼 유형 외에도 버퍼의 바이트 정렬(byte alignment)을 설정해야 합니다. 이 값은 버퍼에 저장할 데이터에 따라 달라지며, 대부분의 경우 1로 설정하는 것이 적합합니다. 그러나 특정 작업에서는 특정 정렬이 필수적이며, 잘못된 정렬은 오류를 발생시킬 수 있습니다. 정렬에 대한 자세한 내용은 "Buffers"를 참조하세요.
데이터 유형에 따른 일반적인 정렬 가이드
데이터 유형 | 정렬 값 |
---|---|
문자열 | 1 바이트 |
8비트 정수 (부호 있음/없음) | 아무 값 |
16비트 정수 (부호 있음/없음) | 2 바이트 |
32비트 정수 (부호 있음/없음) | 4 바이트 |
16비트 부동 소수점 | 2 바이트 |
32비트 부동 소수점 | 4 바이트 |
64비트 부동 소수점 | 8 바이트 |
잘못된 정렬 선택은 성능에 부정적인 영향을 미칠 수 있으므로 주의해야 합니다. 또한, 2 기비바이트(2,147,483,648 바이트) 이상의 버퍼를 생성할 수 없습니다.
문법
buffer_create(size, type, alignment)
인수 설명
인수 | 유형 | 설명 |
---|---|---|
size | 실수 | 버퍼의 크기(바이트 단위) |
type | 버퍼 유형 상수 | 생성할 버퍼의 유형 (위 상수 목록 참조) |
alignment | 실수 | 버퍼의 바이트 정렬 |
반환 값
- 버퍼
예제
player_buffer = buffer_create(16384, buffer_fixed, 2);
위 코드는 16384 바이트의 메모리를 버퍼에 할당하고, 이 버퍼를 반환하여 player_buffer
변수에 참조를 저장합니다. 버퍼는 2 바이트 경계에 정렬되어 있습니다.
활용 예제
예제 1: 문자열 버퍼 생성
string_buffer = buffer_create(256, buffer_fixed, 1);
예제 2: 32비트 정수 버퍼 생성
int_buffer = buffer_create(1024, buffer_fixed, 4);
예제 3: 부동 소수점 버퍼 생성
float_buffer = buffer_create(512, buffer_fixed, 4);
예제 4: 16비트 정수 버퍼 생성
short_buffer = buffer_create(128, buffer_fixed, 2);
예제 5: 동적 크기 버퍼 생성
dynamic_buffer_size = 2048;
dynamic_buffer = buffer_create(dynamic_buffer_size, buffer_fixed, 1);