| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 557 人关注过本帖
标题:C语言优化问题
取消只看楼主 加入收藏
状态二
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-8-31
结帖率:75%
收藏
已结贴  问题点数:13 回复次数:2 
C语言优化问题
新手上路,想请教大神,下面这段程序怎么优化。如果要用到汇编的话,希望大神能说详细点哈,我不太懂汇编


#include<stdio.h>
#include<stdlib.h>

#define BLOCK_SIZE             4

int a[16][16] ;

void forward4x4(int (*block)[16], int (*tblock)[16], int pos_y, int pos_x)
{
  int i, ii;  
  int tmp[16];
  int *pTmp = tmp, *pblock;
  int p0,p1,p2,p3;
  int t0,t1,t2,t3;

  // Horizontal
  for (i=pos_y; i < pos_y + BLOCK_SIZE; i++)
  {
    pblock = &block[i][pos_x];
    p0 = *(pblock++);
    p1 = *(pblock++);
    p2 = *(pblock++);
    p3 = *(pblock  );

    t0 = p0 + p3;
    t1 = p1 + p2;
    t2 = p1 - p2;
    t3 = p0 - p3;

    *(pTmp++) =  t0 + t1;
    *(pTmp++) = (t3 << 1) + t2;
    *(pTmp++) =  t0 - t1;   
    *(pTmp++) =  t3 - (t2 << 1);
  }
   
  // Vertical
   for (i=0; i < BLOCK_SIZE; i++)
  {
    pTmp = tmp + i;
    p0 = *pTmp;
    p1 = *(pTmp += BLOCK_SIZE);
    p2 = *(pTmp += BLOCK_SIZE);
    p3 = *(pTmp += BLOCK_SIZE);

    t0 = p0 + p3;
    t1 = p1 + p2;
    t2 = p1 - p2;
    t3 = p0 - p3;

    ii = pos_x + i;
    tblock[pos_y    ][ii] = t0 +  t1;
    tblock[pos_y + 1][ii] = t2 + (t3 << 1);
    tblock[pos_y + 2][ii] = t0 -  t1;
    tblock[pos_y + 3][ii] = t3 - (t2 << 1);
  }
}

int main(){
   
    int (*b)[16] = a;
    int j,k;

    //input
    freopen("D:/BISHE/input.txt","r",stdin);
    for(j=0;j<16;j++){
        for(k=0;k<16;k++){
            scanf("%d ",&b[j][k]);   
        }
    }
    freopen("CON","r",stdin);
   
     for (j = 0; j < 16; j+=4)
    {
        for (k = 0;k < 16; k+=4)
        {
            forward4x4( b,  b, j, k);
        }
    }
   
    //output
    freopen("D:/BISHE/output1.txt","w",stdout);
    for (j = 0; j < 16; j++)
    {
        for (k = 0;k < 16; k++)
        {
            printf("%d ",a[j][k]);
        }
        printf("\n");
    }
    freopen("CON","w",stdout);
   
    system("pause");
    return 0;   
}
搜索更多相关主题的帖子: C语言 include 新手上路 
2015-02-01 16:05
状态二
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-8-31
收藏
得分:0 
回复 3楼 waterstar
这是一个离散余弦变换算法,我说的优化是想能不能改写的让这段代码运行的时间更短一点,计算的快一点
2015-02-02 17:30
状态二
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-8-31
收藏
得分:0 
回复 4楼 wmf2014
嗯嗯,谢谢
2015-02-02 17:31
快速回复:C语言优化问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.078961 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved