结构体定义以及其赋值和使用
2014-04-30 15:17
267 查看
-----------<结构体定义以及其赋值和使用>---------------------------
//结构体的赋值不一定全部赋值,但是后面用到的理所当然要必须赋值
//需求导向供给
struct AFX_EXT_CLASS SKDCommunicationData
{
BOOL m_bSucc;
BOOL m_bFirst;
SDataInfo m_dataInfo; //结构体
SKDCommunicationData();
void Reset();
};
struct SDataInfo
{
int m_nSubKind;
DWORD m_dwExtra;
DWORD m_dwSecondExtra;
DWORD m_dwThirdExtra;
DWORD m_dwExtra4;
DWORD m_dwExtra5;
int m_nRev;
ULONGLONG
m_llReqID;
CBHDateTime
m_dtBegin;
CBHDateTime m_dtEnd;
int m_nCutoffFreq;
HWND m_hwndDest;
HWND m_hwndDestSecond;
string
m_strHead[STRING_HEAD_COUNT]; //#define STRING_HEAD_COUNT 3
deque<SLineInfo> m_LineInfoArray; //队列 结构体
};
struct SLineInfo
{
BOOL m_bArg;
//本行是否有对应参数
DWORD m_nID;
//ID号(标识号):参数
DWORD m_pChannelInfo;
string
m_str[STRING_COUNT];
long m_nArg;
//(通常为线数):参数
long m_nArg2;
//参数2
long m_nData;
//数据
COleDateTime
m_datetime; //时间
double
m_dbFirstValue; //数值1
double
m_dbSecondValue; //数值2
double
m_dbThirdValue; //数值3
BOOL m_bBaseInfo;
//下面二项是动态基本信息
BOOL m_bRevValid;
//
int m_nRev;
BOOL m_bDateTimeValid;
S_VibCharValue
m_vibCharValue; //主要用来表达基本信息,结构体
S_DynCharValue
m_dyncCharValue; //主要用来表达基本信息
vector<double>
m_dbArrayValue; //数值数组1
vector<double>
m_dbArrayDec; //数值数组2
vector<double>
m_dbArrayDec2; //数值数组3
vector<double>
m_dbArrayDec3; //数值数组4
vector<CBHDateTime>
m_dtArray; //日期时间数组
vector<long>
m_nArray; //整数数组
vector<int>
m_nArray2; //整数数组
vector<int>
m_nArray3; //整数数组
vector<S_VibCharValue>
m_vibArray;
public:
SLineInfo()
{
m_bArg = FALSE;
m_pChannelInfo = NULL;
m_bBaseInfo = FALSE;
m_bRevValid = FALSE;
m_bDateTimeValid = FALSE;
}
};
///结构体
class _BHKD_EXT_ S_VibCharValue
{
public:
S_VibCharValue();
~S_VibCharValue();
DATATYPE_CHAR _fCharAll; //typedef float DATATYPE_CHAR;
DATATYPE_CHAR _fCharHalf;
DATATYPE_CHAR _fCharOne;
DATATYPE_CHAR _fCharTwo;
DATATYPE_CHAR _fCharThree;
DATATYPE_CHAR _fCharRes;
DATATYPE_CHAR _fGap;
DATATYPE_CHAR _fPhaseHalf;
DATATYPE_CHAR _fPhaseOne;
DATATYPE_CHAR _fPhaseTwo;
DATATYPE_CHAR _fPhaseThree;
DATATYPE_INT _iSmpFreq;
DATATYPE_INT _iSmpNum;
DATATYPE_INT _iRev;
public:
S_VibCharValue& operator=(const S_VibCharValue& vibValue_);
DATATYPE_CHAR GetSpecTypeData(int iCharType_=GE_ALLCHAR); //方法
void SetSpecTypeData(float fData_,int iCharType_=GE_ALLCHAR);
};
DATATYPE_CHAR S_VibCharValue::GetSpecTypeData(int iCharType_)
{
switch(iCharType_)
{
case GE_ALLCHAR:
return _fCharAll;
case GE_HALFCHAR:
return _fCharHalf;
case GE_ONECHAR:
return _fCharOne;
case GE_TWOCHAR:
return _fCharTwo;
case GE_THREECHAR:
return _fCharThree;
case GE_DCCHAR:
return _fDC;
case GE_GAP:
return _fGap;
case GE_RESCHAR:
return _fCharRes;
case GE_PHASECHARONE:
return _fPhaseOne;
case GE_PHASECHARTWO:
return _fPhaseTwo;
case GE_PHASECHARTHREE:
return _fPhaseThree;
case GE_PHASECHARHALF:
return _fPhaseHalf;
case GE_SAMPLEFREQ:
return _iSmpFreq;
case GE_SAMPLENUM:
return _iSmpNum;
case GE_REV:
return _iRev;
default:
return _fCharAll;
}
}
============<结构体定义以及其赋值和使用>===============================
//结构体的赋值不一定全部赋值,但是后面用到的理所当然要必须赋值
//需求导向供给
struct AFX_EXT_CLASS SKDCommunicationData
{
BOOL m_bSucc;
BOOL m_bFirst;
SDataInfo m_dataInfo; //结构体
SKDCommunicationData();
void Reset();
};
struct SDataInfo
{
int m_nSubKind;
DWORD m_dwExtra;
DWORD m_dwSecondExtra;
DWORD m_dwThirdExtra;
DWORD m_dwExtra4;
DWORD m_dwExtra5;
int m_nRev;
ULONGLONG
m_llReqID;
CBHDateTime
m_dtBegin;
CBHDateTime m_dtEnd;
int m_nCutoffFreq;
HWND m_hwndDest;
HWND m_hwndDestSecond;
string
m_strHead[STRING_HEAD_COUNT]; //#define STRING_HEAD_COUNT 3
deque<SLineInfo> m_LineInfoArray; //队列 结构体
};
struct SLineInfo
{
BOOL m_bArg;
//本行是否有对应参数
DWORD m_nID;
//ID号(标识号):参数
DWORD m_pChannelInfo;
string
m_str[STRING_COUNT];
long m_nArg;
//(通常为线数):参数
long m_nArg2;
//参数2
long m_nData;
//数据
COleDateTime
m_datetime; //时间
double
m_dbFirstValue; //数值1
double
m_dbSecondValue; //数值2
double
m_dbThirdValue; //数值3
BOOL m_bBaseInfo;
//下面二项是动态基本信息
BOOL m_bRevValid;
//
int m_nRev;
BOOL m_bDateTimeValid;
S_VibCharValue
m_vibCharValue; //主要用来表达基本信息,结构体
S_DynCharValue
m_dyncCharValue; //主要用来表达基本信息
vector<double>
m_dbArrayValue; //数值数组1
vector<double>
m_dbArrayDec; //数值数组2
vector<double>
m_dbArrayDec2; //数值数组3
vector<double>
m_dbArrayDec3; //数值数组4
vector<CBHDateTime>
m_dtArray; //日期时间数组
vector<long>
m_nArray; //整数数组
vector<int>
m_nArray2; //整数数组
vector<int>
m_nArray3; //整数数组
vector<S_VibCharValue>
m_vibArray;
public:
SLineInfo()
{
m_bArg = FALSE;
m_pChannelInfo = NULL;
m_bBaseInfo = FALSE;
m_bRevValid = FALSE;
m_bDateTimeValid = FALSE;
}
};
///结构体
class _BHKD_EXT_ S_VibCharValue
{
public:
S_VibCharValue();
~S_VibCharValue();
DATATYPE_CHAR _fCharAll; //typedef float DATATYPE_CHAR;
DATATYPE_CHAR _fCharHalf;
DATATYPE_CHAR _fCharOne;
DATATYPE_CHAR _fCharTwo;
DATATYPE_CHAR _fCharThree;
DATATYPE_CHAR _fCharRes;
DATATYPE_CHAR _fGap;
DATATYPE_CHAR _fPhaseHalf;
DATATYPE_CHAR _fPhaseOne;
DATATYPE_CHAR _fPhaseTwo;
DATATYPE_CHAR _fPhaseThree;
DATATYPE_INT _iSmpFreq;
DATATYPE_INT _iSmpNum;
DATATYPE_INT _iRev;
public:
S_VibCharValue& operator=(const S_VibCharValue& vibValue_);
DATATYPE_CHAR GetSpecTypeData(int iCharType_=GE_ALLCHAR); //方法
void SetSpecTypeData(float fData_,int iCharType_=GE_ALLCHAR);
};
DATATYPE_CHAR S_VibCharValue::GetSpecTypeData(int iCharType_)
{
switch(iCharType_)
{
case GE_ALLCHAR:
return _fCharAll;
case GE_HALFCHAR:
return _fCharHalf;
case GE_ONECHAR:
return _fCharOne;
case GE_TWOCHAR:
return _fCharTwo;
case GE_THREECHAR:
return _fCharThree;
case GE_DCCHAR:
return _fDC;
case GE_GAP:
return _fGap;
case GE_RESCHAR:
return _fCharRes;
case GE_PHASECHARONE:
return _fPhaseOne;
case GE_PHASECHARTWO:
return _fPhaseTwo;
case GE_PHASECHARTHREE:
return _fPhaseThree;
case GE_PHASECHARHALF:
return _fPhaseHalf;
case GE_SAMPLEFREQ:
return _iSmpFreq;
case GE_SAMPLENUM:
return _iSmpNum;
case GE_REV:
return _iRev;
default:
return _fCharAll;
}
}
============<结构体定义以及其赋值和使用>===============================
相关文章推荐
- 【C语言】11-指针
- jquery 操作实例一
- 拆分按钮
- java.net.SocketException: Write failed: Broken pipe异常分析 .
- 微信订阅号开发笔记(一)
- 机器学习自学入门相关推荐
- 指定qt资源压缩
- listview onitemclick 逻辑
- 常用的java工具
- 存储器
- B/S系统MVC与三层结构详解
- 安装黑苹果目前最详细教程
- QQ 聊天机器人API
- GlusterFS Translator API
- 我希望快乐 (愿与君共勉)
- 二维码知识原理汇总
- 2.vim常用命令、列模式 和 ctags 和 文件跳转
- 如何调用API检查当前电脑是否联网
- Spring MVC多视图配置
- 网页播放Catia的代码(此文备份使用)