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

C/C++关键字static,const,inline,define,typedef

C/C++关键字static,const,inline,define,typedef 


document.body.oncopy = function() {
if (window.clipboardData) {
setTimeout(function() {
var text = clipboardData.getData("text");
if (text && text.length > 300) {
text = text + "\r\n\n本文来自CSDN博客,转载请标明出处:" + location.href;
clipboardData.setData("text", text);
}
}, 100);
}
}


static
1)
产生背景
引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题
:
如果想将函数中此变量的值保存至下一次调用时,如何实现?
最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅受此函数控制)。
      
类的静态成员也是这个道理。
解决方案:因此
C++
中引入了
static
,用它来修饰变量,它能够指示编译
器将此变量在程序的静态存储区分配空间保存,这样即实现了目的,又使得此变量的存取范围不变。
2)
具体作用
Static
作用分析总结:
static
总是使得变量或对象的存储形式变成静态存储,连接方式变成内部连接,对于局部变量(已经是内部连接了),它仅改变其存储方式;对于全局变量(已经是静态存储了),它仅改变其连接类型。
(1
连接方式:成为内部连接;
2
存储形式:存放在静态全局存储区
)

const
1)
产生背景
a) C++
有一个类型严格的编译系统,这使得
C++
程序的错误在编译阶段即可发现许多,从而使得出错率大为减少,因此,也成为了
C++

C
相比,有着突出优点的一个方面。
b) C
中很常见的预处理指令
#define VariableName VariableVa


相关文档:

C++中extern “C”含义深层探索(在原作的基础上修改)


1.
引言
  C++
语言的创建初衷是“a
better C”
,但是这并不意味着C++
中类似C
语言的全局变量和函数所采用的编译和连接方式与C
语言完全相同。作为一种欲与C
兼容的语言,C++
保留了一部分过程 式语言的特点(被世人称为“
不彻底地面向对象”
),因而它可以定义不属于任何类的全局 ......

使用mex C生成MATLAB的股票数据分析接口

#include "mex.h"
#define DWORD long 
#define NUMBER_OF_STRUCTS (sizeof(friends)/sizeof(struct phonebook))
#define NUMBER_OF_FIELDS (sizeof(field_names)/sizeof(*field_names))
void mexFunction(int nlhs,
    mxArray * plhs[] , int nrhs,const mxArray * pahs[])
{
typedef struc ......

Symbian C/S 机制分析


以下分析基于:
Developer Platform :S60 3rd Edition, Feature Pack 2 SDK
Operating System :Symbian OS v9.3
一,为什么要使用Client/Server架构
在Symibian OS中所有的异步服务都是Server通过C/S架构来实现的。Client是利用Server提供的特定服务的程序,Server接受来至Client的请求消息并同步或异步的处理他们。C ......

C和C++的位运算

  有次一个同事问我
    swc ^= swc;
  是什么意思,我也不知道,查了下,意思应该是将swc变量清0,疑惑的是为什么就不能写成 swc = 0; 呢?不明白
  顺便记录下其他的操作,碰到新的再追加:
    swc = ~swc;    //变量取反 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号