C语言关键字
static在C语言中static关键字有以下的作用
1,可以用来修饰局部变量。局部变量在函数内部定义的,只有在函数内部有效(作用域),其缺省的存储方式是动态存储的,即指令执行到变量定义处时才给变量分配存储单元,函数执行结束后变量的内存单元就会被释放掉(生命周期)。用static声明局部变量时,则会改变变量的存储方式,使变量成为静态局部变量,即在编译时就为变量分配内存,直到程序运行结束退出才释放内存单元。如果在子函数中的变量,如果想要这个变量在函数执行结束后不被释放掉,可以使用static修饰。
2,static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。
3,static修饰一个函数,则对函数的连接方式产生影响,这个函数的只能在本文件中调用,不能被其他文件调用。这个有点类似于C#中的private。使用静态函数的好处是,不用担心与其他文件的同名函数产生干扰,另外对函数本身也是一种保护机制。
const const关键字用来定义常量,被它修饰的变量值不能再改变。
const在修饰变量的时候一定要初始化, ...
c++的模板类编译的问题
c++问题小记1,模板类编译的问题前两天在写代码时,把模板类的声明和分开放在两个文件中了,类似于下面这样:
stack.hpp:
12345678910#ifndef _STACK_HPP#define _STACK_HPPtemplate <typename Type>class stack { public: stack(); ~stack();};#endif
stack.cpp:
12345678910#include <iostream>#include "stack.hpp"template <typename Type> stack<Type>::stack() { std::cerr << "Hello, stack " << this << "!" << std::endl;}template <type ...





