I have following c code:
#define ASSERT_ACTIVE(active) do { if (!active) return errno = 6, -1; } while (0);
#define errno (*_errno())
int someCrazyFunc (bool active) {
    ASSERT_INACTIVE (active);
    ...
}
As far as I know a #define will simply place replacement text in place of the specified identifier. 
I like to know:
- What does return errno = 6, -1;means? is that returns two values in one return statement?
- What is the meaning of replacement code (*_errno()) = 6
 
     
    