有两个类都需要使用共同的变量,将这些变量定义为全局变量。比如,res.h和res.cpp分别来声明和定义全局变量,类ProducerThread和ConsumerThread来使用全局变量。(以下是QT工程代码)
/**********res.h声明全局变量************/
#pragma once
#include
const int g_nDataSize = 1000; // 生产者生产的总数据量
const int g_nBufferSize = 500; // 环形缓冲区的大小
extern char g_szBuffer[]; // 环形缓冲区
extern QSemaphore g_qsemFreeBytes; // 控制环形缓冲区的空闲区(指生产者还没填充数据的区域,或者消费者已经读取过的区域)
extern QSemaphore g_qsemUsedBytes; // 控制环形缓冲区中的使用区(指生产者已填充数据,但消费者没有读取的区域)
如果是这样的话你得定义一个类, 然后重载所有左值运算符(能修改变量取值的运算符, 主要为构造, 各种赋值(=, +=, -=), 最后添加一个operator int(), 使你的类能够转换成int使用. 在你重载的运算符里对计算结果进行检查, 如果超出了范围可以抛出异常或不做修改.
这个用求余运算。
i = ( i%30)
0和负数单独判断下就行了
没得定义,加限定条件来判断if(i>=1&&i<=30) (do...........)
比较笨的方法就是用调教约束,用if进行判断