QUOTED: " ##ONE and ##TWO will yield syntax errors -- you are not using token
pasting correctly. What do you think you are pasting together? Token pasting is used inside of a pre-processor macro to combine two tokens into a single token (which also must be valid). Your use here is completely incorrect." I know my program is incorrect giving syntax error. I am not able to find how to use this feature of token concatenation thats why I am seeking help in this group. I could have written like case ONE case TWO but what I wanted to know is the syntax as how to implement this feature doing something with the COM ports(say). Now COM ports are defined as COM1,COM2 etc. Suppose I want to just define the COM port number as : #define P 1 or 2 etc so that while writing the associated handlers I can just write COM##P which would be understood by the preprocessor as COM1 or COM2 etc. and implemented accordingly in the program. So thats all. Instead of modifying at many parts of the program we just change the number 'n'. Karmennevaya Dhikaraste, Maaphaaleshu Kadaachanah ----- Original Message ---- From: Brett McCoy <[EMAIL PROTECTED]> To: [email protected] Sent: Friday, 16 November, 2007 1:22:22 AM Subject: Re: [c-prog] How is Token Concatenation done here On Nov 15, 2007 2:39 PM, debasish deka <debasish_deka@ yahoo.co. in> wrote: > I have read in K&R's C Programming and was trying for implementing token > concatenation as follows: > > #define ONE 1 > #define TWO 2 > > int main() > { > int i; > printf("\nEnter the number\n"); > scanf("%d",& i); > switch(i) > { > case(##ONE): > printf("\nONE" ); > break; > case(##TWO): > printf("\nTWO" ); > break; > default: > printf("\nDefault\ n"); > } > system("PAUSE" ); > return 0; > } ##ONE and ##TWO will yield syntax errors -- you are not using token pasting correctly. What do you think you are pasting together? Token pasting is used inside of a pre-processor macro to combine two tokens into a single token (which also must be valid). Your use here is completely incorrect. token concatenation was used a lot in the old days of C++ to create pseudo-templates before real templates were part of the standard. -- Brett ------------ --------- --------- --------- --------- --------- - "In the rhythm of music a secret is hidden; If I were to divulge it, it would overturn the world." -- Jelaleddin Rumi <!-- #ygrp-mkp{ border:1px solid #d8d8d8;font-family:Arial;margin:14px 0px;padding:0px 14px;} #ygrp-mkp hr{ border:1px solid #d8d8d8;} #ygrp-mkp #hd{ color:#628c2a;font-size:85%;font-weight:bold;line-height:122%;margin:10px 0px;} #ygrp-mkp #ads{ margin-bottom:10px;} #ygrp-mkp .ad{ padding:0 0;} #ygrp-mkp .ad a{ color:#0000ff;text-decoration:none;} --> <!-- #ygrp-sponsor #ygrp-lc{ font-family:Arial;} #ygrp-sponsor #ygrp-lc #hd{ margin:10px 0px;font-weight:bold;font-size:78%;line-height:122%;} #ygrp-sponsor #ygrp-lc .ad{ margin-bottom:10px;padding:0 0;} --> <!-- #ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean, sans-serif;} #ygrp-mlmsg table {font-size:inherit;font:100%;} #ygrp-mlmsg select, input, textarea {font:99% arial, helvetica, clean, sans-serif;} #ygrp-mlmsg pre, code {font:115% monospace;} #ygrp-mlmsg * {line-height:1.22em;} #ygrp-text{ font-family:Georgia; } #ygrp-text p{ margin:0 0 1em 0;} #ygrp-tpmsgs{ font-family:Arial; clear:both;} #ygrp-vitnav{ padding-top:10px;font-family:Verdana;font-size:77%;margin:0;} #ygrp-vitnav a{ padding:0 1px;} #ygrp-actbar{ clear:both;margin:25px 0;white-space:nowrap;color:#666;text-align:right;} #ygrp-actbar .left{ float:left;white-space:nowrap;} .bld{font-weight:bold;} #ygrp-grft{ font-family:Verdana;font-size:77%;padding:15px 0;} #ygrp-ft{ font-family:verdana;font-size:77%;border-top:1px solid #666; padding:5px 0; } #ygrp-mlmsg #logo{ padding-bottom:10px;} #ygrp-vital{ background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;} #ygrp-vital #vithd{ font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;} #ygrp-vital ul{ padding:0;margin:2px 0;} #ygrp-vital ul li{ list-style-type:none;clear:both;border:1px solid #e0ecee; } #ygrp-vital ul li .ct{ font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;} #ygrp-vital ul li .cat{ font-weight:bold;} #ygrp-vital a{ text-decoration:none;} #ygrp-vital a:hover{ text-decoration:underline;} #ygrp-sponsor #hd{ color:#999;font-size:77%;} #ygrp-sponsor #ov{ padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;} #ygrp-sponsor #ov ul{ padding:0 0 0 8px;margin:0;} #ygrp-sponsor #ov li{ list-style-type:square;padding:6px 0;font-size:77%;} #ygrp-sponsor #ov li a{ text-decoration:none;font-size:130%;} #ygrp-sponsor #nc{ background-color:#eee;margin-bottom:20px;padding:0 8px;} #ygrp-sponsor .ad{ padding:8px 0;} #ygrp-sponsor .ad #hd1{ font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;} #ygrp-sponsor .ad a{ text-decoration:none;} #ygrp-sponsor .ad a:hover{ text-decoration:underline;} #ygrp-sponsor .ad p{ margin:0;} o{font-size:0;} .MsoNormal{ margin:0 0 0 0;} #ygrp-text tt{ font-size:120%;} blockquote{margin:0 0 0 4px;} .replbq{margin:4;} --> Get the freedom to save as many mails as you wish. To know how, go to http://help.yahoo.com/l/in/yahoo/mail/yahoomail/tools/tools-08.html [Non-text portions of this message have been removed]
