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


相关文档:

使用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 ......

关于C/C++的位域

在C/C++中我们有时为了节省内存占用空间,需要使用到位域,如下所示代码:
struct SDummy
{
  int A : 2;
  int B : 8;
  int C : 12;
  int D : 10;
};
    在计算机内存昂贵的情况下,位域不乏为一种有效的节省内存占用空间又让代码书写比较通俗易懂的方法。但是在现今内存相 ......

常见的C字符串处理函数的源代码

char *strcpy(char *strDes, const char *strSrc)
{
    assert((strDes != NULL) && (strSrc != NULL));
    char *address = strDes;
    while ((*strDes + ......

linux 0.11 内核学习 console.c,控制台


参考《linux内核完全注释》和网上相关文章
/*
 * 控制台显示操作
 */
/*
 *  linux/kernel/console.c
 *
 *  (C) 1991  Linus Torvalds
 */
/*
 * console.c
 *
 * This module implements the console io functions
 * 'void con_init(v ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号