What does this Define mean?

c, c-preprocessor

Solution

EVER will be equivalent to exactly this:

;;

This means that you could have:

#define EVER ;;

//..... 

for(EVER){printf("This will print forever");}

which will be equivalent to:

for(;;){printf("This will print forever");}

You should however exercise caution when using aliases for such structures, as your application gets bigger you could get weird and hard to debug issues if you mess some #define statement.

In my opinion, a classic `while(true)` might be healthier in the long run, though not as witty.

Problem

I'm taking a course in C and came across this #define. Reading up on it, it is that you define something. Example: ``` #define FAMILY 4 ``` Then every time I set something equal to family or call family it is the value 4. But I also came across this: ``` #define EVER ;; #define FAMILY 4 ``` What does it mean if after ever there are two semicolons? Does it mean EVER = ";;"?

Original source