请问这些变量的前缀是什么含义?i、m、d

普及版库CH375FAT.ZIP中CH375.c中的读扇区的函数:

/* 从U盘中读取多个扇区的数据块到缓冲区中 */ unsigned char RBC_Read(unsigned long iLbaStart, unsigned char iSectorCount,unsigned char *mBufferPoint) /* iLbaStart 是读取的线起始性扇区号, iSectorCount 是读取的扇区数 */ { unsigned char mIntStatus; unsigned int mBlockCount; unsigned char mLength; CH375_CMD_PORT_d_out(CMD_DISK_READ); /* 从USB存储器读数据块 */ CH375_DAT_PORT_d_out((unsigned char)iLbaStart); /* LBA的最低8位 */ CH375_DAT_PORT_d_out ((unsigned char)( iLbaStart >> 8 )); CH375_DAT_PORT_d_out((unsigned char)( iLbaStart >> 16 )); CH375_DAT_PORT_d_out((unsigned char)( iLbaStart >> 24 )); /* LBA的最高8位 */ CH375_DAT_PORT_d_out( iSectorCount); /* 扇区数 */ // mBufferPoint = &DATA_BUFFER; /* 指向缓冲区起始地址 */ for ( mBlockCount = iSectorCount * CH375_BLK_PER_SEC; mBlockCount != 0; mBlockCount -- ) { /* 数据块计数 */ mIntStatus = mWaitInterrupt( ); /* 等待中断并获取状态 */ if ( mIntStatus == USB_INT_DISK_READ ) { /* USB存储器读数据块,请求数据读出 */ CH375_CMD_PORT_d_out(CMD_RD_USB_DATA); /* 从CH375缓冲区读取数据块 */ mLength = CH375_DAT_PORT_in(); /* 后续数据的长度 */ /* 通常数据长度是64,有些U盘要求单片机必须在2mS之内取走64字节数据,否则U盘可能数据丢失 */ /* 建议优化下面的循环程序,确保单片机在1mS之内完成64字节的数据传输 */ if ( mLength ) { /* 根据长度读取数据 */ do { // 对于C51,这个DO+WHILE结构效率高,速度快 *mBufferPoint = CH375_DAT_PORT_in(); /* 读出数据并保存 */ mBufferPoint ++; } while ( -- mLength ); } CH375_CMD_PORT_d_out( CMD_DISK_RD_GO); /* 继续执行USB存储器的读操作 */ } else break; /* 返回错误状态 */ } if ( mBlockCount == 0 ) mIntStatus = mWaitInterrupt( ); /* 等待中断并获取状态 */ if ( mIntStatus == USB_INT_SUCCESS ) return 1; /* 操作成功 */ else return 0; /* 操作失败 */ }

还有这两个函数:

unsigned long SwapINT32(unsigned long dData) { dData = (dData&0xff)<<24|(dData&0xff00)<<8|(dData&0xff000000)>>24|(dData&0xff0000)>>8; return dData; }

unsigned int SwapINT16(unsigned int dData) { dData = (dData&0xff00)>>8|(dData&0x00ff)<<8; return dData; }

请教下i、m、d这些变量前缀是什么含义吗? 变量前缀还有什么通用的标准吗?

没什么特殊的要求,你也可以改变这个定义啊


那总有个含义吧?我想学习学习,把自己的程序规范一下。


那你可以看一些关于书写C语言程序规范的资料,有介绍.


能先大致说一下吗?关于前缀。


匈牙利命名法是一种编程时的命名规范。 基本原则是:变量名=属性+类型+对象描述, 一般前缀命名规范 前缀 类型 实例

C 类或结构 CDocument,CPrintInfo

m_ 成员变量 m_pDoc,m_nCustomers

双精度浮点 :d 整型 :i(通常用n) 等等,C语言资料中都有详细介绍的


但是上面函数中的dData分别是unsigned long 和unsigned int呀,我不明白了。


i为从外部输入的参数,m为自己定义的本地局部变量,d我不清楚,不知道谁写的,前后两部分不是同一人写的


只有登录才能回复,可以选择微信账号登录