Reputation: 98
I was looking over this code, but i was unable to figure out why the usage of "\" after the && operator?
if ((*(u32*)(kaddr + 0x64) == *(u32*)(kaddr + 0x78)) && \
(*(u32*)(kaddr + 0x68) == *(u32*)(kaddr + 0x88)))
Upvotes: 0
Views: 84
Reputation: 738
Among its uses are Macro definitions, basically it tells the compiler not to stop at the end of the line but rater to continue. example:
#define ASSERT_NULL(value) \
do { \
if((value) == NULL) { \
return true; \
} \
} while(NULL)
Now, if you won't put \
, you won't get the functionality you're looking for.
Upvotes: 1
Reputation: 111269
The \
right before the end of the line glues the following line to the current. Since C normally ignores whitespace, this is mostly useful when declaring macros.
Upvotes: 3
Reputation: 34829
The backslash is not needed, unless this is part of a #define
.
From the C specification §5.1.1.2
Each instance of a backslash character (
\
) immediately followed by a new-line character is deleted, splicing physical source lines to form logical source lines.
But it's not needed since the C language doesn't require that an if
statement be placed on a single line.
Upvotes: 4