当前位置: 技术问答>linux和unix
超简单.帮个忙,有点语法没搞懂
来源: 互联网 发布时间:2015-12-03
本文导语: 看看下面的头文件:明明是c的风格来编译但是里面却定义了个类.这样居然是合法的.我不太明白.请高手指点一下: #ifdef __cplusplus extern "C"{ #endif ////////////////////////////////////////////////////////////////////// /* ------------------...
看看下面的头文件:明明是c的风格来编译但是里面却定义了个类.这样居然是合法的.我不太明白.请高手指点一下:
#ifdef __cplusplus
extern "C"{
#endif
//////////////////////////////////////////////////////////////////////
/* ----------------------------------------------------------------------------
文件解析、处理类
-----------------------------------------------------------------------------*/
class CFileProcess
{
protected:
enum { MAX_FILENAME_LEN= 100 }; //内部使用最大文件名长
typedef struct TFileHeadRecord
{
UINT8 cSendType; //发送方式 0:每行为单个手机号码 1:每行一个号段
UINT32 lSpNumber;
INT8 sServNum[ 22 ];
INT8 sServCode[ 11 ];
INT8 sSrcNum[ 22 ];
UINT8 cSrcNumFlag; //0:固定源号码,1:从文件中轮循读取
UINT8 cPID;
UINT8 cUDHI;
UINT8 cMsgFormat; //消息格式
UINT8 cMsgLen; //消息长度
INT8 sMsgContent[1024]; //消息内容
} TFileHeadRecord;
typedef struct TUserTable
{
INT8 sBeginNum[ 22 ];
INT8 sEndNum[ 22 ];
} TUserTable;
public:
CFileProcess();
~CFileProcess();
public:
//对象系统起动
INT32 Start();
//对象系统关闭
INT32 Shut();
//检测处理目录下所有待处理文件
INT32 DetectFile( const UINT8 cFileType= 0 );
//检测处理目录下的待处理文件
INT32 DetectWinFile( const UINT8 cFileType= 0 );
//文件解析预处理
BOOL PretreatFile( INT8* pFileName );
//解析文件
INT32 FetchFile( const INT8* pFileName, const UINT8 cFileType= 0 );
//解析头记录行
INT32 FetchHeadRecordLine( char* pFile, char* pHead );
//解析记录行
INT32 FetchRecordLine( const INT8* pRecordLine, INT8* pRecord, const UINT8 cFileType, const UINT8 cRecordType );
//获取源号码
INT32 GetSrcNumFromFile( FILE** pfpSrcNum, INT8* pSrcNum );
//处理每一条记录
INT32 TreatRecord( const INT8* pRecord, TFileHeadRecord* pHeadRecord, const UINT8 cFileType, const UINT8 cRecordType );
//文件解析结束后处理
//cOptFlag: 0:无效 1:移动 2:复制 3:删除
INT32 OptFile( const UINT8 cOptFlag, const INT8* pFileName, const INT8* pFilePath_Bak );
//设置文件路径
INT32 SetFilePath( const INT8* pFilePath, const UINT8 cFileType= 0 );
//设置操作信息
INT32 SetOptInfo( const UINT8 cOptFlag, const INT8* pFilePath );
//设置解压信息
INT32 SetUnzipInfo( const INT8* pZipFileSuffix, const INT8* pUnzipCmd );
protected:
//处理线程
static MYTYPE_THREAD_FUNC thProcessor( void* pParam );
public:
BOOL m_bExitFlag; //对象系统退出标记
//文件路径
INT8 m_sFilePath_Update[ MAX_FILENAME_LEN ];
INT8 m_sZipFileSuffix[ 20 ]; //压缩文件后缀
INT8 m_sUnzipCmd[ 100 ]; //解压命令
UINT8 m_cOptFlag; //解析结束操作标记 0:无效 1:移动 2:复制 3:删除
INT8 m_sFilePath_Bak[ MAX_FILENAME_LEN ]; //备份路径
};
//////////////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
extern "C"{
#endif
//////////////////////////////////////////////////////////////////////
/* ----------------------------------------------------------------------------
文件解析、处理类
-----------------------------------------------------------------------------*/
class CFileProcess
{
protected:
enum { MAX_FILENAME_LEN= 100 }; //内部使用最大文件名长
typedef struct TFileHeadRecord
{
UINT8 cSendType; //发送方式 0:每行为单个手机号码 1:每行一个号段
UINT32 lSpNumber;
INT8 sServNum[ 22 ];
INT8 sServCode[ 11 ];
INT8 sSrcNum[ 22 ];
UINT8 cSrcNumFlag; //0:固定源号码,1:从文件中轮循读取
UINT8 cPID;
UINT8 cUDHI;
UINT8 cMsgFormat; //消息格式
UINT8 cMsgLen; //消息长度
INT8 sMsgContent[1024]; //消息内容
} TFileHeadRecord;
typedef struct TUserTable
{
INT8 sBeginNum[ 22 ];
INT8 sEndNum[ 22 ];
} TUserTable;
public:
CFileProcess();
~CFileProcess();
public:
//对象系统起动
INT32 Start();
//对象系统关闭
INT32 Shut();
//检测处理目录下所有待处理文件
INT32 DetectFile( const UINT8 cFileType= 0 );
//检测处理目录下的待处理文件
INT32 DetectWinFile( const UINT8 cFileType= 0 );
//文件解析预处理
BOOL PretreatFile( INT8* pFileName );
//解析文件
INT32 FetchFile( const INT8* pFileName, const UINT8 cFileType= 0 );
//解析头记录行
INT32 FetchHeadRecordLine( char* pFile, char* pHead );
//解析记录行
INT32 FetchRecordLine( const INT8* pRecordLine, INT8* pRecord, const UINT8 cFileType, const UINT8 cRecordType );
//获取源号码
INT32 GetSrcNumFromFile( FILE** pfpSrcNum, INT8* pSrcNum );
//处理每一条记录
INT32 TreatRecord( const INT8* pRecord, TFileHeadRecord* pHeadRecord, const UINT8 cFileType, const UINT8 cRecordType );
//文件解析结束后处理
//cOptFlag: 0:无效 1:移动 2:复制 3:删除
INT32 OptFile( const UINT8 cOptFlag, const INT8* pFileName, const INT8* pFilePath_Bak );
//设置文件路径
INT32 SetFilePath( const INT8* pFilePath, const UINT8 cFileType= 0 );
//设置操作信息
INT32 SetOptInfo( const UINT8 cOptFlag, const INT8* pFilePath );
//设置解压信息
INT32 SetUnzipInfo( const INT8* pZipFileSuffix, const INT8* pUnzipCmd );
protected:
//处理线程
static MYTYPE_THREAD_FUNC thProcessor( void* pParam );
public:
BOOL m_bExitFlag; //对象系统退出标记
//文件路径
INT8 m_sFilePath_Update[ MAX_FILENAME_LEN ];
INT8 m_sZipFileSuffix[ 20 ]; //压缩文件后缀
INT8 m_sUnzipCmd[ 100 ]; //解压命令
UINT8 m_cOptFlag; //解析结束操作标记 0:无效 1:移动 2:复制 3:删除
INT8 m_sFilePath_Bak[ MAX_FILENAME_LEN ]; //备份路径
};
//////////////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
|
。。。你还是没有明白什么叫做C风格的命名方式。
C风格的命名方式!=用C语言来编译。明白了吗?
也就是说还是用C++来编译,只是命名用C风格来命名而已。
C风格的命名方式!=用C语言来编译。明白了吗?
也就是说还是用C++来编译,只是命名用C风格来命名而已。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。