버퍼 쓰기 함수 설명
buffer_write
함수는 이전에 생성된 버퍼에 데이터를 쓰는 데 사용됩니다. 이 함수의 "type" 인자와 일치하는 형식으로 데이터를 작성해야 하며, 예를 들어 문자열을 부호 없는 16비트 정수로 쓰려고 하면 안 됩니다. 이 함수는 주어진 값을 버퍼의 현재 위치에 기록합니다.
데이터 타입 정의 상수
다음 상수를 사용하여 데이터 타입을 정의할 수 있습니다:
상수 이름 | 설명 | 값 |
---|---|---|
buffer_error_general | 일반적인 버퍼 오류 | -1 |
buffer_error_out_of_space | 버퍼에 쓰려는 타입의 크기를 저장할 공간이 부족함 | -2 |
buffer_error_invalid_type | 버퍼에 잘못된 타입을 쓰려고 시도함 (예: buffer_u16 타입에 문자열 값 제출) |
-4 |
문법
buffer_write(buffer, type, value);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
buffer | Buffer | 데이터를 쓸 버퍼 |
type | Real | 버퍼에 쓸 데이터의 타입 (위의 상수 목록 참조) |
value | Real | 쓸 데이터 |
반환값
성공 시 0을 반환하며, 실패 시 다음 중 하나의 상수를 반환합니다.
활용 예제
다음은 buffer_write
함수를 사용하는 예제입니다:
buffer_seek(buff, buffer_seek_start, 0);
buffer_write(buff, buffer_s16, 0);
buffer_write(buff, buffer_s16, x);
buffer_write(buff, buffer_s16, y);
위 코드는 buff
변수에 저장된 버퍼의 시작 위치를 찾고, 그 위치에 부호 있는 16비트 정수 값을 연속으로 씁니다.
추가 활용 예제
- 버퍼에 다양한 데이터 타입 쓰기
gml buffer_write(buff, buffer_u8, 255); // 부호 없는 8비트 정수 buffer_write(buff, buffer_f32, 3.14); // 32비트 부동 소수점
- 버퍼 공간 부족 처리
gml if (buffer_write(buff, buffer_s16, large_value) < 0) { // 오류 처리 코드 }
- 잘못된 타입 쓰기 시도
gml buffer_write(buff, buffer_u16, "string_value"); // 잘못된 타입
이와 같은 예제를 통해 buffer_write
함수의 다양한 활용 방법을 이해할 수 있습니다.