353 :
しまった一行余計だ:
#include <stdio.h>
typedef int HelloWorld;
typedef void World;
#define Hello main
#define _(HELLO_WORLD) void HELLO_WORLD ## _(void)\
{printf(*#HELLO_WORLD=='W'?", W":(*#HELLO_WORLD=='d'?"d.\n":#HELLO_WORLD));}
#define hello return
#define world 0
_(H)_(e)_(l)_(o)_(W)_(r)_(d)
HelloWorld Hello(World)
{
H_();e_();l_();l_();o_();W_();o_();r_();l_();d_();
hello world;
}