|
发表于 2019-1-17 10:06:19
|
显示全部楼层
本帖最后由 人造人 于 2019-1-17 10:08 编辑
可以使用memcmp
- #include <stdio.h>
- #include <stdbool.h>
- #include <string.h>
- typedef unsigned int uint16;
- typedef struct /* bits description */
- {
- uint16 RsvNone : 1; /*0 */
- uint16 DRV : 1; /* 1 */
- uint16 Soft_OC : 1; /* 2 */
- uint16 Hard_OC : 1; /* 3 */
- uint16 rsv : 1; /* 4 */
- uint16 Over12V : 1; /* 5 */
- uint16 Low12V : 1; /* 6 */
- uint16 CurU : 1; /* 7 */
- uint16 CurW : 1; /* 8 */
- uint16 EEP : 1; /* 9 */
- uint16 OU : 1; /* 10 */
- uint16 LU : 1; /* 11 */
- uint16 IGBT_OH : 1; /* 12 */
- uint16 PGSignal : 1; /* 13 */
- uint16 CurCheck : 1; /* 14 */
- uint16 EFT : 1; /* 15 */
- uint16 Tune : 1; /* 16 */
- uint16 ParaSet : 1; /* 17 */
- uint16 VdcCheck : 1; /* 18 */
- uint16 Mul_Soft_OC : 1; /* 19 */
- uint16 CurSensorU : 1; /* 20 */
- uint16 CurSensorV : 1; /* 21 */
- uint16 CurSensorW : 1; /* 22 */
- uint16 Rsv18 : 9; /* 23 - 31 */
- } ERROR_REG;
- bool ErrorRegCompare(ERROR_REG *a, ERROR_REG *b)
- {
- return !memcmp(a, b, sizeof(ERROR_REG));
- }
- int main(void)
- {
- ERROR_REG a = {0xAA55};
- ERROR_REG b = a;
- if(ErrorRegCompare(&a, &b))
- printf("a == b\n");
- else
- printf("a != b\n");
- b.RsvNone = 0;
- if(ErrorRegCompare(&a, &b))
- printf("a == b\n");
- else
- printf("a != b\n");
- return 0;
- }
复制代码 |
|