#pragma unroll的用法

#pragma unroll的用法

  (2013-02-28 14:04:25)
转载
标签: 

it

 

pramga

 

unroll

分类: C/C 编程

#pragma宏命令主要是改变编译器的编译行为,其他的参数网上资料比较多,我只想简单说下#pragma unroll的用法,因为网上的资料比较少,而且说的比较笼统,请看下面的一段代码

int main()

{

int a[100];

#pragma unroll 4

for(int i=0;i<100;i++)

{

a[i]=i;

}

 

return 0;

}

 

循环是一个程序运行时间的主要展现形式,通过使用#pragma unroll命令,编译器在进行编译时,遇到该命令就会对循环进行展开,比如对一些循环次数比较少的循环

for(int i=0;i<4;i++)

cout<<"hello world"<

可以展开为

cout<<"hello world"<

cout<<"hello world"<

cout<<"hello world"<

cout<<"hello world"<

这样程序的运行效率会更好,当然,现在大多数编译器都会自动这样优化,而通过使用#pragma unroll命令就可以控制编译器的对循环的展开程度。还是回到最开始那个程序,他的循环展开形式为:

for(int i=0;i<100;i+=4)

a[i]=i;

a[i+1]=i+1;

a[i+2]=i+2;

a[i+3]=i+3;

你可能感兴趣的:(VS2010)