调用函数时,函数没有入参,却能使用?

2019-07-20 04:44发布

本帖最后由 li13158 于 2017-1-9 17:56 编辑

函数没有入参, 居然不报错,这是为什么?


u8 TP_Scan(u8 tp)
{ }

u8 FT5206_Scan(u8 mode)
{ }

typedef struct
{
        u8 (*init)(void);                        //初始化触摸屏控制器
        u8 (*scan)(u8);                        //扫描触摸屏.0,屏幕扫描;1,物理坐标;         
        void (*adjust)(void);               
        u16 x[CT_MAX_TOUCH];                
        u16 y[CT_MAX_TOUCH];               
        u8  sta;                                                                                       
        float xfac;                                       
        float yfac;
        short xoff;
        short yoff;          
        u8 touchtype;
}_m_tp_dev;

_m_tp_dev tp_dev=
{
        TP_Init,
        TP_Scan,
        TP_Adjust,
        0,
        0,
        0,
        0,
        0,
        0,                                   
        0,
        0,                                   
};                        


u8 TP_Init(void)
{
                FT5206_Init();
                tp_dev.scan=FT5206_Scan;                        
                tp_dev.touchtype|=0X80;                        //电容屏
                tp_dev.touchtype|=lcddev.dir&0X00;//横屏还是竖屏         
        return 0;                                                                          
}


看这2个scan函数,都有返回值,但是 tp_dev.scan=FT5206_Scan;  居然都没有入参,这是为什么?


不应该是 tp_dev.scan=FT5206_Scan(u8 mode) 吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
taizonglai
1楼-- · 2019-07-20 04:45
百度C语言的“函数指针”。
li13158
2楼-- · 2019-07-20 05:14
zuozhongkai 发表于 2017-1-9 17:55
百度C语言的“函数指针”。

ok,看懂了。

f = &func;
赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。
jlian168
3楼-- · 2019-07-20 10:22
 精彩回答 2  元偷偷看……
jlian168
4楼-- · 2019-07-20 14:16
版主:為何我無法發貼???

一周热门 更多>