西安达内
培训(
http://www.xatarena.net)讲师表示,C++
函数指针是指指向函数而非指向对象的指针。像其他指针一样,函数指针也指向某个特定的类型。函数类型由其返回类型以及形参表确定,而与函数名无关。
定义:
char (*fP)(char,int);
赋值:
char
function(char i,int j)
{
}
fp=function;
调用
(*fp)(10,100);
type char (*FUN)(char,int);类型定义
FUN fp ;定义fp为指向函数的指针
volatile的用法和作用
const与volatile相反,
volatile表示该
内存中的数值可能随时会改变。
uchar a,b,c
a=5;
b=a; //b=5
c=a; //c=5
volatile uchar a,b,c
a=5;
b=a; //b不确定
c=a; //c不确定
例如单片机的P0口初始化为:
P0=0x0000 0001
a=p0; //如果人为使P0口外部都接高电平,则a=0x1111 1111,而不是0x0000 0001。与硬件相关
在定义寄存器相应的地址时常用到volatile:
#define rGPCCON (*(volatile unsigned *)0x56000020)
#define rGPCDAT (*(volatile unsigned *)0x56000024)
在项目里文件比较多时,少用
全局变量,直接利用函数调用形式
单个文件: static char i; 定义静态变量,防止别的文件对变量值的意外修改。
char fun(void)
{
return(i);
}
直接使用外部调用全局变量形式:extern int i; 这样的缺点是存在隐患,当文件较多时很可能出现全局的变量重名的问题,这时
候要修改的话可能较麻烦。