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