코드 변조

1. 정수 추출 최적화
C 언어의 모드 연산% 비용이 많기 때문에
value += dalta;
	if (value > size)
		value -= size;

대신
value = (value + delta) % size;

2. 간단한 함수를 매크로 정의로 대체하여 함수 호출 비용을 줄이지만 귀속 호출 문장에서 사용하지 않습니다.
사용하다
#define MAX(x, y) ( (x) > (y) ? (x) : (y) )

대신
int max(x, y){
	return x > y ? x : y;
}

3. 순서대로 수색할 때 보초병으로 테스트 조건 통합
사용하다
int search(int array[], int size, int value){
	//array   size + 1
	int  array[size] = value;
	int i;
	while (array[i] != value)
		i++;
	if (i == size)
		return -1;
	else
		return i; 
}

대신
int search(int array[], int size, int value){
	int i;
	for (ij = 0; i < size; i++)
		if (array[i] == value)
			return i;
	return -1;
}

4. 순서대로 검색할 때 전개 순환으로 자증을 없애고 순환 전개는 파이프의 막힘을 피하고 지점을 줄이며 지령의 병행성을 증가시킨다.
사용하다
int search(int array[], int size, int value){
	//array   size + 1
	int  array[size] = value;
	int i;
	while (array[i] != value){
		if (array[i] == value)
			break;
		if (array[i + 1] == value){
			i += 1;
			break;
		}
		if (array[i + 2] == value){
			i += 2;
			break;
		}
		if (array[i + 3] == value){
			i += 1;
			break;
		}
		if (array[i + 1] == value){
			i += 3;
			break;
		}
		if (array[i + 4] == value){
			i += 4;
			break;
		}
		i += 5;
	}
	if (i == size)
		return -1;
	else
		return i; 
}

대신
int search(int array[], int size, int value){
	//array   size + 1
	int  array[size] = value;
	int i;
	while (array[i] != value)
		i++;
	if (i == size)
		return -1;
	else
		return i; 
}

좋은 웹페이지 즐겨찾기