C 函数 inline

来源:互联网 发布:无线传感器网络论文 编辑:程序博客网 时间:2024/05/06 14:34
      inline 也是所谓的内联函数 这是为了优化程序,让系统编译时节约时间。如果inline的函数太大就不可以了。关于节约时间的问题,在一般的小程序中看不出效果,要在大型的项目中才能感觉的出。
例如:int m ( int x)
{
 return x+x;
}
int n (int y)
{
return m();
}
    这样函数n回调用函数m,然后m把(x+x)返回给n,函数n继续把那个值返回给调用者。
    如果是 inline int m (int x),函数n会被直接编译成:
int n ()
{
return x+x;
}
      相当于把m执行的操作直接融合到n里,这样减少了调用m消耗的时间,但同时也增大了n的尺寸。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        不过现在的编译器会自动决定是否对函数进行上面的操作,而不是根据前面加不加inline,但lnline本身还是有另外的一个意义:一个可执行文件的cpp文件中一个函数只能被定义一次,如果把函数定义在一个.h文件中并让两个cpp包含就会造成这个函数分别在两个cpp中被定义产生错误,但是inline函数是可以在多个cpp中多次定义的。
	
				
		
原创粉丝点击