-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompare.c
More file actions
135 lines (114 loc) · 3.93 KB
/
compare.c
File metadata and controls
135 lines (114 loc) · 3.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*
*********************************************************************************************************
* INCLUDE FILES
*********************************************************************************************************
*/
#include "compare.h"
/*
*********************************************************************************************************
* LOCAL DEFINES
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* LOCAL CONSTANTS
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* LOCAL DATA TYPES
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* LOCAL TABLES
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* LOCAL GLOBAL VARIABLES
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* LOCAL FUNCTION PROTOTYPES
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* FUNCTIONS
*********************************************************************************************************
*/
/**
* @brief This function will compare if the left-hand-side lesser than the right-hand-side.
*
* @param lhs the pointer to the left-hand-side value.
* @param rhs the pointer to the right-hand-side value.
*
* @return if left-hand-side lesser than the right-hand-side
* - true yes
* - false no
*/
bool compare_control_lesser(void *lhs, void *rhs, size_t len)
{
assert(lhs);
assert(rhs);
assert(len);
for (size_t cnt = 1; cnt <= len; cnt++) {
if (*((char *)lhs + len - cnt) < *((char *)rhs + len - cnt)) {
return true;
}
}
return false;
}
/**
* @brief This function will compare if the left-hand-side greater than the right-hand-side.
*
* @param lhs the pointer to the left-hand-side value.
* @param rhs the pointer to the right-hand-side value.
*
* @return if left-hand-side greater than the right-hand-side
* - true yes
* - false no
*/
bool compare_control_greater(void *lhs, void *rhs, size_t len)
{
assert(lhs);
assert(rhs);
assert(len);
for (size_t cnt = 1; cnt <= len; cnt++) {
if (*((char *)lhs + len - cnt) > *((char *)rhs + len - cnt)) {
return true;
}
}
return false;
}
/**
* @brief This function will compare if the left-hand-side equal with the right-hand-side.
*
* @param lhs the pointer to the left-hand-side value.
* @param rhs the pointer to the right-hand-side value.
*
* @return if left-hand-side equal with the right-hand-side
* - true yes
* - false no
*/
bool compare_control_equal(void *lhs, void *rhs, size_t len)
{
assert(lhs);
assert(rhs);
assert(len);
size_t cnt_equal_hit = 0;
for (size_t cnt = 0; cnt < len; cnt++) {
if (*((char *)lhs + cnt) == *((char *)rhs + cnt)) {
cnt_equal_hit++;
} else {
return false;
}
}
if (len == cnt_equal_hit) {
return true;
} else {
return false;
}
}