我试图找到这个问题的答案,但没有找到任何有效的方法。我正在尝试创建一类静态方法,以便我可以将函数指针传递给 SPI::transmitData()
我以后可以用 SPI::call()
打电话.但是,我收到一个错误:
unresolved symbol SPI::mycallback, first referenced in ./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;
关于c++ - 存储函数指针供以后使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17100358/