8 바이트 길이의 unsigned char을 예상하는 함수가 있습니다.두 개의 32 비트를 효율적으로 결합합니까? - C
void f1(unsigned char *octets)
{
unsigned char i;
for (i=0;i<8;i++)
printf("(%d)",octets[i]);
}
이 내가 하나 개의 64 비트 정수있는 동안 내가 그것을 사용하는 방법입니다 : (.이 기계의 기본 엔디 언을 사용)
unsigned long long ull = 1;
f1((unsigned char *) &ull);
을
내 질문 경우 대신 가진 1x64bit 정수의입니다 , 2x32bit 정수가 있습니다.이 특정 함수의 입력으로 효율적으로 결합 할 수있는 방법이 있습니까?
unsigned long int low = 1;
unsigned long int high = 0;
답변에 대한 귀하의 의견은 기능을 변경할 수 없으며 '비효율적'이므로 기존 메모리 위치에서 데이터를 옮기고 싶지 않은 것으로 보입니다. 그렇다면 대답은 '아니오'입니다. 하나의 포인터가 두 개의 인접하지 않은 메모리 위치를 가리킬 수 없습니다. – Patrick
Aidan Cully의 두 번째 의견에 따르면 이러한 효율성을 달성 할 방법이 없습니다. 그래서 나는 그것을 명확히하는 그의 두 번째 코멘트에 대한 그의 대답을 선택했습니다. –
@ 패트릭 : 명확하게 또한 주셔서 감사합니다. –