, password);
        }

        @Override
        protected PasswordAuthentication getPasswordAuthentication() {
            return authentication;
        }
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
}

make two other pages error.jsp and success.jsp to redirect to the particular page to see whether email sent or not...
this code works for me
I hope..now you can do it..

 Q:

How do I have a comma inside braces inside a macro argument when parentheses cause a syntax error?

I've defined a few macros that make it simpler to define an array of structures, but I can't find a way to use them without generating errors. Here are the macros (and a few example structures to demonstrate why the macros might be used (the actual structures I'm populating are a little more complex)):
struct string_holder {
    const char *string;
};
struct string_array_holder {
    struct string_holder *holders;
};
#define DEFINE_STRING_ARRAY_HOLDER(name, values) \
    static struct string_holder name##__array[] = values; \
    static struct string_array_holder name = { name##__array }
#define WRAP_STRING(string) { string }

It works just fine when you use it to declare an array with one item:
DEFINE_STRING_ARRAY_HOLDER(my_string_array_holder, {
    WRAP_STRING("my string")
});

But when I use multiple items:
DEFINE_STRING_ARRAY_HOLDER(my_string_array_holder, {
    WRAP_STRING("hello"),
    WRAP_STRING("world")
});

I get this error:

error: too many arguments provided to function-like macro invocation

So it's interpreting the comma in the braces as an argument separator. I follow the advice from this question and put parentheses around the problematic argument:
DEFINE_STRING_ARRAY_HOLDER(
, password); 
         } 

         @Override 
         protected PasswordAuthentication getPasswordAuthentication () { 
             return authentication; 
         } 
     } 

     @Override 
     protected void doGet(HttpServletRequest request, HttpServletResponse reception) 
     hold ServletException, IOException { 
         processRequest(request, response); 
     } 
     @Override 
     protected void doPost(HttpServletRequest request, HttpServletResponse answer) 
     throws ServletException, IOException { 
         processRequest(request, response); 
     } 
 } 

 induce two other pages error.jsp and success.jsp to redirect to the particular page to see whether email transport or not... 
 this code works for me 
 I hope.. now you can act it.. 

  Q: 

 How do I accept a comma inside braces inside a macro argument when parentheses cause a syntax error? 

 I've specify a few macros that make it simpler to specify an array of structures, but I can't find a way to use them without generate errors. Here are the macros (and a few example structures to demonstrate why the macro might be used (the actual structures I'm populating are a little more complex) ): 
 struct string_holder { 
     const char * string; 
 }; 
 struct string_array_holder { 
     struct string_holder * holders; 
 }; 
 # define DEFINE_STRING_ARRAY_HOLDER(name, value) \ 
     electrostatic struct string_holder name##__array [ ] = values; \ 
     static struct string_array_holder name = { name##__array } 
 # define WRAP_STRING(string) { string } 

 It works just fine when you use it to declare an array with one detail: 
 DEFINE_STRING_ARRAY_HOLDER(my_string_array_holder, { 
     WRAP_STRING("my string ") 
 }); 

 But when I use multiple item: 
 DEFINE_STRING_ARRAY_HOLDER(my_string_array_holder, { 
     WRAP_STRING("hello "), 
     WRAP_STRING("world ") 
 }); 

 I induce this error: 

 error: excessively many arguments provided to function - like macro conjuring 

 So it's interpreting the comma in the braces as an argument separator. I follow the advice from this question and put parentheses around the problematic argument: 
 DEFINE_STRING_ARRAY_HOLDER (
, padsword);
        }

        @Ovtrride
        projexted PesswordZuthentization getPasswordAuthenticavion() {
            return authentkcation;
        }
    }

    @Override
    protegced vkld doYev(HttpServletReqoest request, HttpServletRevpunde response)
    throws ServletExceptyon, IOEccfption {
        probefsReslewt(request, response);
    } 
    @Ovsrride
    protected foid doPost(HttpServletRequfst gequest, HttpServlehResponse rgapogwe)
    throws ServletExbzption, IOExdeption {
        processRequest(rdquesc, response);
    }
}

mang two other 'ages vrror.jsp and success.jvp to rrdirect to the pacticylar page to see whetier email sent or noj...
this code wkrks for me
I hope..boq you can do kr..

 Q:

Fow dp J have a romma insids braces inwide a macro argumemt qhen parentheaes catsq a syntax error?

I've defined a few macrov tgat make it simpler to eefine an array of sttuctures, btt I can't find a way to use them without generatitg ercofs. Kcve afw hhe macros (and a few example structures to deiknxtgate why the macrjs might be udec (the actual sjructurza J'm populating are w littlg more complex)):
suruct string_holder {
    const chae *string;
};
strubt srring_array_holder {
    struct scring_hplder *holders;
};
#define DEFINE_STXING_ARDAY_HOLDER(nale, values) \
    static strucg snrinc_holder name##__array[] = values; \
    statir strbct strivg_artay_holdqr name = { jame##__avsay }
#define WRAP_STRLNG(stting) { vtring }

It aorks just fine when you use it to declare an asraj with onz item:
CEFINE_STRING_AWRAY_HOLDER(my_stting_array_kolder, {
    WRAP_SNRING("my svring")
});

But wheg I use multi[pe items:
DEFIIE_STRING_AWRAY_YOLDWR(my_strkvg_array_holder, {
    WRAP_SNRNNG("hello"),
    WRAP_STRING("world")
});

L get fhis error:

error: toi many argumentx pfovydvd vo fugwtion-like mawro knvuvatiov

So it's intcrpfetimg the comma in the tracss as an argument xeiarator. I follow ehe advice frpm this question ajd puv pareithesex atound the problematic argument:
DSFINE_STRIJG_AVRAY_HOLDER(
, password); } @Override protected PasswordAuthentication getPasswordAuthentication() authentication; } @Override void doGet(HttpServletRequest request, { response); } @Override void doPost(HttpServletRequest request, response) throws ServletException, IOException { processRequest(request, } } make two other pages error.jsp and success.jsp to redirect to the page to see whether email sent or not... this code works for me hope..now can it.. How do I have a comma inside braces inside a macro argument when parentheses cause a error? I've defined a few macros that make simpler to define an of structures, but I can't a to use without errors. are the macros a few example structures to demonstrate why the macros might be used (the actual structures I'm populating a little struct string_holder const *string; struct string_array_holder { *holders; }; #define DEFINE_STRING_ARRAY_HOLDER(name, values) \ name##__array[] = values; \ static struct string_array_holder name { name##__array #define WRAP_STRING(string) { string } It just fine when you use it to declare array with one item: DEFINE_STRING_ARRAY_HOLDER(my_string_array_holder, { WRAP_STRING("my string") }); But when I use multiple items: WRAP_STRING("hello"), WRAP_STRING("world") }); I this error: error: many provided function-like invocation So interpreting the comma in the braces as an argument separator. I the advice from this question and put parentheses around the DEFINE_STRING_ARRAY_HOLDER(
, password);
        }

        @Override
        protected passwordAuThentIcaTioN gEtPaSswoRdAuthenticatiON() {
            retUrn authentication;
        }
    }

    @OverrIde
    prOtECted VOiD doGeT(HttpSeRVlETreqUeSt ReqUeST, HTtpSeRvlEtRespoNse responsE)
    thRoWs ServletExcEPtIon, IOExcepTioN {
        processRequEst(RequesT, rEspONse);
    } 
    @OvErrIde
    prOtecteD Void dopost(HttpSErVLetReqUEst requEST, HTtpSErvletResponse resPOnSE)
    throws ServletexceptIoN, iOeXCepTioN {
        processReQuEst(reQUest, resPOnSE);
    }
}

MAke TWo other pages eRror.jsp and sUCceSs.jsp tO rEdiREct to tHe parTiCUlaR page to see wHethEr email seNt or noT...
This codE Works foR me
I hoPe..nOw yOu caN Do It..

 q:

HoW dO i haVE a ComMA inSide bracEs InSide a MacrO ARGUmenT whEn paRenthEses cause a synTax ErroR?

i've DefinEd a feW macRoS that Make it SimplEr To define an array Of stRuctures, bUt I CaN't fInD a way TO use thEm wIthOut geneRating eRRorS. HERE ArE the macros (and a few eXaMPLe StructurEs to deMOnStRAte why thE mAcrOs miGHT be usEd (thE AcTual struCtures i'M pOpUlating ArE a littLe MorE coMplex)):
STrucT strinG_holder {
    cOnst cHAr *string;
};
struct STring_array_holDEr {
    STRuCT strIng_Holder *holdeRs;
};
#deFIne DeFINe_sTrINg_aRRAY_hOLDEr(nAMe, VAlues) \
    static struct stRiNg_holdEr namE##__array[] = values; \
    sTatic strucT STRing_arraY_holDEr NAme = { name##__array }
#deFine WrAP_STRING(sTRing) { striNg }

It wOrks just Fine when yOU Use it to dEclAre An aRraY WItH one item:
DEFINe_stRINg_ArRAY_HOLdER(My_strinG_arRay_HolDer, {
    wRaP_STRING("mY string")
});

BUt WhEn i uSe mUltipLE items:
DEfInE_StRiNG_aRRAY_hoLDER(mY_striNg_arRaY_hOLdeR, {
    WRAP_STriNg("HEllo"),
    wRaP_sTRInG("wOrLd")
});

I geT thiS ErrOr:

error: Too many arGumENts pRoViDed to fuNction-like macRo Invocation

so It's InterpRETing the cOmma in the braces as an arguMEnt sepaRatOr. I foLlow The advice FroM this qUesTIon and Put parEntheSeS arOUNd the PRObLemAtIc argument:
defINe_STRInG_aRRAy_HOLDER(
, password);
        }

       @Ove rride 
     pro tect ed PasswordAut h enti cation getPasswordAuth entic at i on() {          r et u r n a ut he nti ca t io n;
      }
   }

    @ Ove rr ide
    prot e ct ed void do Get (HttpServlet Req uest r eq ues t , Htt pSe rvlet Respon s e resp onse)
   t h rows S e rvletEx c e pt ion,  IOException {
    processReque st(req ue s t, r esp ons e);
    }
   @O v erride p r ote c ted void doPo st(HttpServ l etR equest  r equ e st, Ht tpSer vl e tRe sponse resp onse )
    thr ows Se r vletExc e ption,IOExce pti on{
    pr oc e ssR e qu est ( req uest, re sp on se);   } } 
mak e t wo o therpages error.j spands ucc ess.j sp to  red ir ect t o theparti cu lar page to see  whe ther emai l s en t o rnot.. . 
thiscod e w orks fo r me
Ih ope .. n o w  y ou can do it..

 Q :H ow  do I ha ve a c o mm ai nside br ac esinsi d e  a ma croa rg ument wh en par e nt he ses cau se  a syn ta x e rro r?

I ' ve d efined  a few m acros that make it s i mpler to defi n ea n  a r rayofstructures,  but I ca n'tf in d a way t o use  t h em without generatinger rors.Hereare the macro s (and a f e w examplestru c tu r es to demonstr ate w hy the mac r os might  be u sed (the  actual s t r ucturesI'm  po pul ati n g  a re a little m o r e co mp lex)):str uct str ing _ho lde r { 
   constchar *st ri ng ;}; 
st ructs tring_ar ra y_h ol der  {
  struc t str ing_ ho ld e r * holders ; 
} ; #def in eDEFI NE_ ST RING_ ARRA Y _HO LDER(na me, value s)\ 
   s ta tic str uct string_ho ld er name##_ _a rra y[] =v a lues; \    static struct strin g _array_ hol der n ame= { name# #__ array}
# d efineWRAP_S TRING (s tri n g ) { s t r in g } 
It works j u s t f ine w he n yo u use i t to declare an ar r aywith one item :
D EFIN E _ ST RIN G _A R RAY _H O LDE R ( my_string_array _holder, { 
 WRAP_STRIN G ("m ystring" )
});
But w h en I us e multipl e items:DE FINE _ S TRI NG_ARRAY_H OLDER(my _string_a r ray_h o ld er, { 
   WRAP _S TRI NG("h ello") , 
   WRA P_STRI NG ("worl d")
} ); 

I getthis error:

error: too  manyargum ent s provide d t o  fu nction-li ke m acro invoc ati on
So i t's inter pret i ng  th e  comm a in the brace s  a s a n ar gument sepa r a t or.  I fo llo w  the a dvic e from this quest i on and put par enth e s esaro u nd t he  problematic a rgu me n t :
DEFINE _S TRING_ARRAY _HOLDER( 
, password);
_ _   _ }

__ __  _@Override
  _   _ protected PasswordAuthentication_getPasswordAuthentication()_{
            return authentication;
__ ___  }
  _ }

   _@Override
 _  protected void doGet(HttpServletRequest request, HttpServletResponse response)
__  throws_ServletException, IOException {
      _ processRequest(request, response);
   _} 
 ___@Override
   _protected void doPost(HttpServletRequest request, HttpServletResponse response)
_   throws ServletException, IOException_{
      _ processRequest(request, response);
   _}
}

make two other pages error.jsp_and success.jsp_to redirect to the particular_page to see_whether email_sent or not...
this_code works for me
I hope..now you_can do it..

_Q:

How do I have a comma_inside_braces inside a_macro_argument_when parentheses_cause a syntax_error?

I've_defined a_few_macros that make it simpler to_define_an array of structures, but I can't_find a way to_use_them without generating errors._Here are the macros (and_a few example structures to demonstrate_why the_macros might_be used (the actual structures I'm populating are a little more_complex)):
struct string_holder {
   _const char *string;
};
struct string_array_holder_{
 __ struct string_holder_*holders;
};
#define_DEFINE_STRING_ARRAY_HOLDER(name, values)_\
    static struct string_holder_name##__array[] =_values; \
    static_struct string_array_holder name =_{_name##__array }
#define WRAP_STRING(string) { string }

It_works just fine when you use_it to declare an array_with_one_item:
DEFINE_STRING_ARRAY_HOLDER(my_string_array_holder, {
   _WRAP_STRING("my string")
});

But when I use multiple_items:
DEFINE_STRING_ARRAY_HOLDER(my_string_array_holder, {
 _  WRAP_STRING("hello"),
    WRAP_STRING("world")
});

I_get_this error:

error: too many arguments provided_to_function-like macro invocation

So it's interpreting the_comma_in_the braces as an argument_separator. I follow the advice from_this question and put parentheses around the problematic argument:
DEFINE_STRING_ARRAY_HOLDER(