buffer_fill 함수 설명
buffer_fill
함수는 이전에 생성된 버퍼를 주어진 데이터 타입과 값으로 채우는 기능을 합니다. 버퍼를 채우기 위해 사용하는 데이터는 이 함수의 "type" 인자와 일치해야 하며, 예를 들어 문자열로 채우려고 하면서 부호 없는 16비트 정수 타입을 사용하는 것은 불가능합니다. 타입 상수는 buffer_read
및 buffer_write
함수에서 사용되는 것과 동일합니다.
구문
buffer_fill(buffer, offset, type, value, size);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
buffer | Buffer | 채울 버퍼에 대한 참조입니다. |
offset | Real | 데이터 오프셋 값 (바이트 단위)입니다. |
type | Real | 버퍼에 기록할 데이터의 타입입니다 (상수 목록 참조). |
value | Real | 기록할 데이터입니다. |
size | Real | 채우고자 하는 버퍼의 크기 (바이트 단위)입니다. |
반환값
N/A
예제
map_buffer = buffer_create(16384, buffer_fixed, 0);
buffer_fill(map_buffer, 0, buffer_u16, 0, 16384);
위의 코드는 map_buffer
변수에 저장된 버퍼의 시작점을 찾고, 그곳에 일련의 부호 있는 16비트 정수 값을 기록합니다.
활용 예제
예제 1: 정수 배열 초기화
my_buffer = buffer_create(1024, buffer_fixed, 0);
buffer_fill(my_buffer, 0, buffer_u32, 1, 1024);
이 코드는 1024 바이트 크기의 버퍼를 생성하고, 모든 값을 1로 채웁니다.
예제 2: 부동 소수점 배열 채우기
float_buffer = buffer_create(2048, buffer_fixed, 0);
buffer_fill(float_buffer, 0, buffer_f32, 3.14, 2048);
이 코드는 2048 바이트 크기의 버퍼를 생성하고, 모든 값을 3.14로 채웁니다.
예제 3: 특정 오프셋에서 채우기
offset_buffer = buffer_create(4096, buffer_fixed, 0);
buffer_fill(offset_buffer, 512, buffer_u8, 255, 3584);
이 코드는 512 바이트 오프셋에서 시작하여 3584 바이트를 255로 채웁니다.
예제 4: 문자열 데이터 채우기 (오류 발생 예)
string_buffer = buffer_create(512, buffer_fixed, 0);
buffer_fill(string_buffer, 0, buffer_string, "Hello", 512);
이 코드는 문자열 타입으로 버퍼를 채우려고 시도하지만, 타입 불일치로 오류가 발생합니다.