⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rotate.c

📁 深入理解计算机系统(computer system:a programmer s perpective)是一本非常经典的教材
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include "defs.h"team_t team = {    /* Team name */    "Unused",    /* First member full name */    "zangdonghe",    /* First member email address */    "0472491",    /* Second member full name (leave blank if none) */    "",    /* Second member email address (blank if none) */    ""};/* The supplied naive version of rotate */char naive_rotate_descr[] = "Naive Row-wise Traversal of src";void naive_rotate(int dim, pixel *src, pixel *dst) {  int i, j;  for(i=0; i < dim; i++) {    for(j=0; j < dim; j++) {      dst[RIDX(dim-1-j,i,dim)] = src[RIDX(i,j,dim)];    }  }  return;}char rotate_descr[] = "Currently set to: Naive Row-wise Traversal of src";void rotate(int dim, pixel *src, pixel *dst) 
{
	int i, j;
	pixel *tsrc,*tsrc2, *t,*hold, *hold2;
	if(dim < 256)
	{
		t = src + dim - 1;
		hold = dst;
		hold2 = dst;
		for (i = 0; i < dim; i+= 2)
		{
			tsrc = t - i;
			tsrc2 = tsrc - 1;
			hold2 += dim;
			*hold = *tsrc;
			*hold2 = *tsrc2;
			hold++;
			hold2++;
			for(j = 1; j < dim; j++)
			{
				tsrc += dim;
				tsrc2 += dim;
				*hold = *tsrc;
				*hold2 = *tsrc2;
				hold++;	
				hold2++;
			}
			hold += dim;
		}
	}
	else
	{
		for (i = 0; i < dim; i+=32)
		{
			for (j = 0; j < dim; j++)
			{
				dst[RIDX(dim-1-i,j,dim)] = src[RIDX(j,i,dim)];
				dst[RIDX(dim-2-i,j,dim)] = src[RIDX(j,i+1,dim)];
				dst[RIDX(dim-3-i,j,dim)] = src[RIDX(j,i+2,dim)];
				dst[RIDX(dim-4-i,j,dim)] = src[RIDX(j,i+3,dim)];
				dst[RIDX(dim-5-i,j,dim)] = src[RIDX(j,i+4,dim)];
				dst[RIDX(dim-6-i,j,dim)] = src[RIDX(j,i+5,dim)];
				dst[RIDX(dim-7-i,j,dim)] = src[RIDX(j,i+6,dim)];
				dst[RIDX(dim-8-i,j,dim)] = src[RIDX(j,i+7,dim)];
				dst[RIDX(dim-9-i,j,dim)] = src[RIDX(j,i+8,dim)];
				dst[RIDX(dim-10-i,j,dim)] = src[RIDX(j,i+9,dim)];
				dst[RIDX(dim-11-i,j,dim)] = src[RIDX(j,i+10,dim)];
				dst[RIDX(dim-12-i,j,dim)] = src[RIDX(j,i+11,dim)];
				dst[RIDX(dim-13-i,j,dim)] = src[RIDX(j,i+12,dim)];
				dst[RIDX(dim-14-i,j,dim)] = src[RIDX(j,i+13,dim)];
				dst[RIDX(dim-15-i,j,dim)] = src[RIDX(j,i+14,dim)];
				dst[RIDX(dim-16-i,j,dim)] = src[RIDX(j,i+15,dim)];
				dst[RIDX(dim-17-i,j,dim)] = src[RIDX(j,i+16,dim)];
				dst[RIDX(dim-18-i,j,dim)] = src[RIDX(j,i+17,dim)];
				dst[RIDX(dim-19-i,j,dim)] = src[RIDX(j,i+18,dim)];
				dst[RIDX(dim-20-i,j,dim)] = src[RIDX(j,i+19,dim)];
				dst[RIDX(dim-21-i,j,dim)] = src[RIDX(j,i+20,dim)];
				dst[RIDX(dim-22-i,j,dim)] = src[RIDX(j,i+21,dim)];
				dst[RIDX(dim-23-i,j,dim)] = src[RIDX(j,i+22,dim)];
				dst[RIDX(dim-24-i,j,dim)] = src[RIDX(j,i+23,dim)];
				dst[RIDX(dim-25-i,j,dim)] = src[RIDX(j,i+24,dim)];
				dst[RIDX(dim-26-i,j,dim)] = src[RIDX(j,i+25,dim)];
				dst[RIDX(dim-27-i,j,dim)] = src[RIDX(j,i+26,dim)];
				dst[RIDX(dim-28-i,j,dim)] = src[RIDX(j,i+27,dim)];
				dst[RIDX(dim-29-i,j,dim)] = src[RIDX(j,i+28,dim)];
				dst[RIDX(dim-30-i,j,dim)] = src[RIDX(j,i+29,dim)];
				dst[RIDX(dim-31-i,j,dim)] = src[RIDX(j,i+30,dim)];
				dst[RIDX(dim-32-i,j,dim)] = src[RIDX(j,i+31,dim)];
			}
		}
	}
}/* Register different versions for testing */void register_rotate_functions() {  add_rotate_function(&rotate, rotate_descr);  add_rotate_function(&naive_rotate, naive_rotate_descr);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -