繁体   English   中英

存储函数指针以备后用

[英]Storing function pointer for later use

我试图找到答案,但是没有找到任何可行的方法。 我正在尝试创建一类静态方法,以便可以传递一个指向SPI::transmitData()的函数指针,以后可以使用SPI::call() 但是,出现错误:

未解析的符号SPI :: mycallback,首次在./spi.obj中引用

spi.h:

#ifndef SPI_H_
#define SPI_H_

#include "msp430g2553.h"

class SPI {
public:
    typedef void (*foo)(void);
    static foo mycallback;

    static void transmitData(unsigned char data, foo callback);
    static void call();
};

#endif /* SPI_H_ */

spi.cpp:

#include "spi.h"

void SPI::transmitData(unsigned char data, foo callback) {
    mycallback = callback; // causes error
    UCA0TXBUF = data;
}

void SPI::call() {
    //SPI::mycallback();
}

我一直在尝试摆弄它,并且当我评论标记的行时错误消失了。 不知道发生了什么。

您需要先实例化静态成员,然后再使用它:

在spi.cpp中

SPI::foo SPI::mycallback = NULL;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM