make all
There is an alternate version that does something different
that can be used if your compiler is incapable of compiling X=g()...
in
main()
. It can be used for another purpose too.
./pjr
Note that some compilers will be unable to compile the expression X=g()...
in
main()
due to lack of temporary stack space. One might want to try replacing
main()
with:
(){X=s().v().o().o().l().S().d().l().i().o().w().N();} main
if this is a problem, which is what this alternate code is.
NOTE: it prints something else and it is what the author suggested one try as well.
make alt
./pjr.alt
This program prints out a string. Can you figure out how it is done?
By use of pointers to functions returning a struct of pointers to functions!
This program prints out the string:
the quick brown fox jumped over the lazy dog
It is simple to make the program print other strings. Each alphabetical character from a to z is printed out as its opposite:
a->z b->y c->x etc
To encode a new string input the string as it is meant to come out:
=s().v().o().o().l().S().d().l().i().o().w().N(); X
Note: S()
represents a space and N()
a newline. This will now
produce…
hello world
By the way, there is actually a piece of code which is not used in the original program! I leave it as an intellectual exercise to the reader to find out what it is.