易截截图软件、单文件、免安装、纯绿色、仅160KB

DSP C优化2

3.4理解编译器的反馈信息
    在编译C代码时,编译器在产生的.asm文件里向程序员反馈了许多信息,理解这些信息,按它的提示修改C代码,对尽快优化代码很有好处。只要用-k令编译器保留.asm文件,就可读到这些信息。
    对于C优化,重点就是循环,对于反馈信息,我们主要考察编译器对流水线的编排,编译器编译循环程序要经过3个阶段:
1、  考察这个循环能否使用软件流水;
2、  收集循环需要用到的资源及相关图信息;
3、  对循环做软件流水编排。
编译器反馈的信息绝大部分是上述3个阶段的信息,下面以编译器对例3-1的反馈信息为例作一些说明。
例3-1 求两个数组和
void main()
{
    short x[100],y[100],sum[100]; //hfgfhfsdg
    int i;
 
    for (i = 0; i < 100; i++)
   {
        x[i] = y[i] = i;
    }
  
   for (i
= 0; i < 100; i++)
   {
       sum[i] = x[i] + y[i];
    }
}
 
    用-k -o3选项进行编译,得到如下反馈信息:
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 15
;*      Loop
opening brace source line   : 16
;*      Loop
closing brace source line   : 18
;*      Loop
Unroll Multiple             : 8x
;*      Known Minimum Trip Count         : 12                   
;*      Known Maximum Trip Count         : 12               


相关文档:

VB/C++/C#串口通讯源代码【附详细注释】


VB
    If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
    MSComm1.CommPort = i1
    MSComm1.PortOpen = True
    MSComm1.InputMode = comInputModeBinary
    MSComm1.InBufferCount = 0
& ......

C/C++中的结构体对齐问题(内存对齐)

由于程序运行时占用的内存过大,所以想办法给程序瘦身。
在调试中发现结构体占用的size竟然和预想的不一样,原来……
看看下面讲的吧,肯定会不枉此看哦!
1,比如:
struct{
short a1;
short a2;
short a3;
}A;
struct{
long a1;
short a2;
}B;
sizeof(A)=6, sizeof(B)=8,为什么?
注:sizeof(sho ......

Python 中的函数调用(类似c中的使用函数入口地址)

def login():
    print 'login'
def logout():
    print 'logout'
controllers = {
'in': login,                              ......

C 语言中的类型转换问题

C 语言中的类型转换问题
一、问题的引出
看下面一段 C 程序:
#include <stdio.h>
int main()
{
short a, b;
float f;
double d;
int i1, i2;

i1 = i2 = 2000000000; //测试环境中 int 的表示范围为 -2147483648 ~ 2147483647
printf("%d\n", i1+i2); //溢出!

a = ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号