#include <iostream>
using namespace std;
class Dog
{
private:
const volatile unsigned char byte; // volatile 可以通过外部接口修改byte,
volatile unsigned char flag; // volatile是限定符,可以用数据成员,成员函数和对象本身使用volatile,
enum { bufsize = 100};
unsigned char buf[bufsize];
int index;
public:
Dog();
~Dog();
void isr() volatile;
char read(int index) const;
};
Dog::Dog() : index(0), byte(0), flag(0) {}
Dog::~Dog()
{
}
void Dog::isr() volatile
{
flag = 0;
buf[index++] = byte;
if (index >= bufsize) index = 0;
}
char Dog::read(int index) const
{
if (index < 0 || index >= bufsize)
return 0;
return buf[index];
}
int main()
{
Dog port;
volatile Dog port2; // 这个是异变的告诉C++不要进行优化,
port2.isr();
return 0;
}
volatile 限定符
最新推荐文章于 2023-08-19 16:23:05 发布