[英]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.