Thursday 11 April 2013

Cplusplus program without Main Function



#include<iostream.h>
#include<conio.h>
#define decode(s,t,u,m,p,e,d) m##s##u##t
#define begin decode(a,n,i,m,a,t,e)
void begin()
{
cout<<"Hello This is wihtout main";
getch();
}

EXPLANATION


1.      

#include<iostream.h>
#include<conio.h>

 In first step we include  two standard library files  “ #include<conio.h> “ for getch()  and “#include<iostream.h>” for cout

 2.

#define decode(s,t,u,m,p,e,d) m##s##u##t

This is Macro . Macros are generally a small block of code that is replaced everywhere in program where Macro name occurs it will replace that macro name with small code provided with macro name at time of macro declaration.
In this decode is Macro name . and it is given parameters :- s,t,u,m,p,e,d.
All logic is in code given after macro name  that is :- m##s##u##t


Now I will numbered the parameter given to macro to understand you how it actually act as main:- s t u m p e d

1          2          3          4           5          6          7
S          t          u          m          p          e          d

Now  value given to replace occurrence of macro is :- m##s##u##t   .Now numbered it according to numbers given to parameters ..

Example:- 

s =1
t=2
u=3
m=4
p=5
e=6
d=7


m        ##        s        ##     u      ##       t
4                      1                 3                 2

Step 3. :- line 3 in program

             #define begin decode(a,n,i,m,a,t,e)

            Now we have done decode macro function in step 2. In this step begin macro will be replaced by numbered order of decode . In this parameters given to decode is different is different as compared to decode arguments in previous step But  It uses the code of 4,1,3,2 as same .

##  is a Token Merging Operator .

That  will get out 4th , 1st ,3rd ,2nd letter from arguments of decode and then combine them or merg them as we are using  Token Merging Operator.

4th  letter  = m
1st   letter  = a
 3rd  letter = i
 2nd letter = n

So according to third statement macro begin will be replaced with main for each occurrence in program. So actually if we see logically then we are using Main program but it is a of hiding it from user.

Share this

0 Comment to " Cplusplus program without Main Function"

Post a Comment