hec
hec

Reputation: 98

usage of "\" in C?

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

Answers (3)

ThunderWiring
ThunderWiring

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

Joni
Joni

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

user3386109
user3386109

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

Related Questions