C Preprocessor
A little "technique" that I came up with during an obfuscation challenge. There's no function recursion, but there is... file recursion?
noloop.c:
#if __INCLUDE_LEVEL__ == 0
int main()
{
puts("There is no loop...");
#endif
#if __INCLUDE_LEVEL__ <= 16
puts(".. but Im in ur loop!");
#include "noloop.c"
#else
return 0;
}
#endif
I wrote/tested this using gcc. Obviously your compiler needs to support the __INCLUDE_LEVEL__
macro (or alternatively the __COUNTER__
macro with some tweaking) in order for this to compile. It should be fairly obvious how this works, but for fun, run the preprocessor without compiling the code (use the -E
flag with gcc).