zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C++指向函数的指针实例解析

C++实例 函数 解析 指针 指向
2023-06-13 09:15:37 时间

通常来说C++函数指针是指指向函数的指针,而非指向对象的指针。就像其他指针一样,函数指针也指向某个特定的类型。函数类型由其返回类型以及形参表确定,而与函数名无关。

定义:

char(*fP)(char,int);

赋值:

charfunction(chari,intj)
{

}

fp=function;
调用
(*fp)(10,100);

typechar(*FUN)(char,int);//类型定义
FUNfp;//定义fp为指向函数的指针

volatile的用法和作用

const与volatile相反,
volatile表示该内存中的数值可能随时会改变。

uchara,b,c
a=5;
b=a;//b=5
c=a;//c=5
volatileuchara,b,c
a=5;
b=a;//b不确定
c=a;//c不确定

例如单片机的P0口初始化为:

P0=0x00000001
a=p0;//如果人为使P0口外部都接高电平,则a=0x11111111,而不是0x00000001。与硬件相关

在定义寄存器相应的地址时常用到volatile:

#definerGPCCON(*(volatileunsigned*)0x56000020)
#definerGPCDAT(*(volatileunsigned*)0x56000024)

在项目里文件比较多时,尽量少用全局变量,而应直接利用函数调用形式

单个文件:static char i; 定义静态变量,防止别的文件对变量值的意外修改。

charfun(void)
{
return(i);
}

直接使用外部调用全局变量形式:externinti;  这样的缺点是存在隐患,当文件较多时很可能出现全局的变量重名的问题,这时候要修改的话可能较麻烦。