As mentioned in many of my previous questions, I'm working through K&R, and am currently into the preprocessor. One of the more interesting things — something I never knew before from any of my prior attempts to learn C — is the ## preprocessor operator. According to K&R:
The preprocessor operator
##provides a way to concatenate actual arguments during macro expansion. If a parameter in the replacement text is adjacent to a##, the parameter is replaced by the actual argument, the##and surrounding white space are removed, and the result is re-scanned. For example, the macropasteconcatenates its two arguments:
#define paste(front, back) front ## backso
paste(name, 1)creates the tokenname1.
How and why would someone use this in the real world? What are practical examples of its use, and are there gotchas to consider?
 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    