#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
typedef int STATUS;
#define ERROR -1
#define OKAY 0
struct version
{
unsigned char major;
unsigned char minor;
unsigned char build;
unsigned char patch;
};
STATUS is_less_than(struct version * original, struct version *compared, bool *result)
{
if(original == NULL || compared == NULL || result == NULL)
{
result = NULL;
return ERROR;
}
*result = false;
if(original->major < compared->major)
{
*result = true;
}
else if(original->major == compared->major) // else if the major >= major
{
if(original->minor < compared->minor)
{
*result = true;
}
else if(original->minor == compared->minor)
{
if(original->build < compared->build)
{
*result = true;
}
else if(original->build == compared->build)
{
if(original->patch < compared->patch)
{
*result = true;
}
else if(original->patch == compared->patch)
{
*result = false;
}
}
}
}
return OKAY;
}
Is there a cleaner way to do this?