Jus*_*ago 1 c++ embedded function-pointers
我试图找到答案,但没有找到任何有效的方法.我正在尝试创建一类静态方法,因此我可以传入一个函数指针,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_ */
Run Code Online (Sandbox Code Playgroud)
SPI.CPP:
#include "spi.h"
void SPI::transmitData(unsigned char data, foo callback) {
mycallback = callback; // causes error
UCA0TXBUF = data;
}
void SPI::call() {
//SPI::mycallback();
}
Run Code Online (Sandbox Code Playgroud)
我一直试图摆弄它,当我评论我标记的线时,错误就消失了.不知道发生了什么事.
您需要在使用之前实例化静态成员:
在spi.cpp中
SPI::foo SPI::mycallback = NULL;
Run Code Online (Sandbox Code Playgroud)