2016-10-04 7 views
-2

현재 3 개의 매개 변수가있는 함수를 작성 중입니다. 매개 변수 중 하나는 입력 배열의 길이 (바이트)입니다. int입니다. 길이가 4 인 경우 입력 배열의 길이는 4 바이트입니다 (입력 및 출력 배열은 다른 2 개의 매개 변수입니다). 길이가 4의 배수가 아닌 경우, 길이가 0이 될 때까지 0으로 채워야합니다. 내 조교는 파일에서 길이를 읽고 바이트 배열에 저장해야한다고 말했고 4 배가 될 때까지 0x00으로 채워야한다고 말했습니다. 그게 나를 내 질문에 이르게 :파일에서 바이트 배열에 대한 데이터 읽기

1) 어떻게 바이트 배열을 선언합니까?
2) 배열의 요소로 [..., 0x00, 0x00, 0x00]을 (를) 포함하여 쉽게 0으로 채 웁니다.

+0

아니요. 그는 길이에 대해 읽고, 4의 배수로 반올림하고, 길이로 된 바이트 배열을 만들고, 데이터를 읽고, 필요하면 0으로 바이트 배열을 채우라고했습니다. – EJP

+0

예. 나는 당신이 나의 가난한 일에 대해 분명하게 말할 능력이있어서 기쁩니다. –

답변

0

어떻게 바이트 배열을 선언합니까?

uint8_t 배열 [크기]; 배열

패딩

for (unsigned int i = 0; i < padding_size; ++i) 
{ 
    array[i] = 0; 
} 

또 다른 기술은 값이 필요한 슬롯을 대체 한 후, 패드 값으로 배열을 설정하는 것입니다 :

std::fill(&array[0], &array[size], 0); 
array[3] = value; 

당신이 바운드 성능 경우 루프를 풀고 여러 할당을 수행 할 수 있습니다.

array[0] = 0; 
array[1] = 0x0; // Same as 0. 
array[2] = 0; 
array[3] = value; 

대부분의 컴퓨터는 데이터 지침을 처리하는 것을 선호합니다. 점프 또는 분기는 분기 또는 점프를 평가하는 데 시간을 소비해야하기 때문에 문제를 일으키는 경향이 있습니다.