看书小记2(《C专家编程》)

1.  NUL用来结束一个ACSII字符串, NULL表示空指针


2. break语句跳出最近的那层循环语句或switch语句


3. static:

 (1). 修饰局部变量

局部变量存放在栈,生命周期随语句块结束而结束。static对局部变量修饰后,作用域不变,但生命周期持续到整个程序结束,并存放在静态数据区。

用static修饰局部变量,只在初次运行时进行初始化,且只进行一次。

void Func()
{
static int a = 1;
a++;
cout<<a<<endl;
}


int _tmain(int argc, _TCHAR* argv[])
{
//a = 2;
Func(); //2
Func(); //3

return 0;
}

 (2). 修饰全局变量 & 函数

A文件中的全局变量(int a = 1)可以通过在B文件中(extern int a)的方式访问。

但static int a = 1之后无法访问,static将原本全局可见的a变量变为本源文件可见。

修饰函数的情况与全局变量一致。

 (3). C++中的static

C++类中,某个函数用static修饰,表示该函数属于类不属于类的某个特定对象;某个变量用static修饰, 表示变量属于类不属于类的某个特定对象。

它的存储空间只有一个副本。


4. extern

extern表示此函数/变量是在别处定义的,且要在此引用。

与include的相比,extern可以加速编译过程。

C++中调用C库函数,需要用extern "C",来告诉链接器链接时用C函数规范来链接,因为C++与C编译完成后在目标代码中的命名规则不同,以此来解决名字匹配问题。


参考:http://developer.51cto.com/art/201104/256820.htm

你可能感兴趣的:(看书小记2(《C专家编程》))