2012年5月7日

内联函数与宏

摘要: 因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和空间方面的开销,虽然函数调用开销是很小的,但它会被累积。于是将影响其效率。 宏由预处理对其进行替代,在使用宏的地方把代码展开,不需要额外的空间和时间方面的开销,所以调用一个宏比调用一个函数更有效率。 但是宏也有很多的不尽人意的地方。 1、.宏不能访问对象的私有成员。 在C++中引入了类及类的访问控制,这样,如果一个操作... 阅读全文

posted @ 2012-05-07 19:53 yfan.qiu 阅读(1602) 评论(0) 推荐(0) 编辑

2012年5月5日

关于C语言中的静态函数

摘要: 在C语言中用static声明限定外部变量与函数,可以将其后声明的对象的作用域限定为被编译源文件的剩余部分。通过static限定外部对象,可以达到隐藏外部对象的目的。如果把函数声明为static类型,则该函数名除了对该函数声明所在的文件可见外,其他文件都无法访问。也就是只能被本文件中的函数调用,而不能被同一程序中的其他文件的函数调用。C语言程序可以看成由一系列外部对象构成,这些外部对象可能是变量或函数。而内部变量是指定义在函数内部的函数参数及变量。外部变量定义在函数之外,因此可以在许多函数中使用。由于C语言不允许在一个函数中定义其它函数,因此函数本身只能是“外部的”。由于C语言代码是以文件为单位 阅读全文

posted @ 2012-05-05 20:07 yfan.qiu 阅读(4938) 评论(0) 推荐(0) 编辑

导航