易截截图软件、单文件、免安装、纯绿色、仅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               


相关文档:

Delphi 与 C/C++ 数据类型对照表

Delphi 与 C/C++ 数据类型对照表
Delphi数据类型C/C++
ShorInt
8位有符号整数
char
Byte
8位无符号整数
BYTE,unsigned short
SmallInt
16位有符号整数
short
Word
16位无符号整数
unsigned short
Integer,LongInt
32位有符号整数
int,long
Cardinal,LongWord/DWORD
32位无符号整数
unsigned long
Int6 ......

Windows Via C/C++:线程实现细节

我们已经了解如何定义线程入口点函数、调用系统API创建执行指定函数的线程。本节将揭示这一切在系统内部是如何完成的。
图6-1描述了线程创建并完成初始化后的状态。调用CreateThread会使系统产生一个线程内核对象,其引用计数(Usage count)被初始化为2(创建线程的进程和线程本身都引用了该内核对象),其它属性也完成了 ......

B/S结构和C/S结构

一、什么是B/S结构和C/S结构。
      第一、什么是C/S结构。
      C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目 ......

C/C++程序员应聘常见面试题深入剖析

 2.找错题
  试题1:
void test1()
{
 char string[10];
 char* str1 = "0123456789";
 strcpy( string, str1 );
}
  试题2:
void test2()
{
 char string[10], str1[10];
 int i;
 for(i=0; i<10; i++)
 {
  str1[i] = 'a';
 }
 strcpy( string, str1 );
}
  试题3:
void te ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号