Query: __concat
OS: netbsd
Section: 3
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
__CONCAT(3) BSD Library Functions Manual __CONCAT(3)NAME__CONCAT, __STRING -- argument substitutionSYNOPSIS#include <sys/cdefs.h> xy __CONCAT(x, y); const char * __STRING(x);DESCRIPTIONThe __CONCAT macro makes use of the cpp(1) preprocessor to concatenate two tokens. When the macro is expanded, x and y are combined into a single token, provided that the result forms a valid token; two tokens that together do not form a valid token can not be concatenated. This is known as ``token concatenation'' or ``token pasting''. The __STRING() macro uses the conventional '#' preprocessing operator to replace the argument x with a string literal. This is also known as ``stringification''.EXAMPLESThe following two printf(3) calls produce the same output: #define Net 0x01 #define BSD 0x02 #define NetBSD "NetBSD" (void)printf("%s ", __CONCAT(Net, BSD)); (void)printf("%s%s ", __STRING(Net), __STRING(BSD));SEE ALSOcpp(1), cdefs(3)HISTORYThe __CONCAT() and __STRING() macros first appeared in NetBSD 1.3.CAVEATSMany small details direct the proper use of the macros. For example, while all leading and trailing whitespace is ignored when __STRING() is used, it is undefined whether cpp(1) puts white space between the tokens when __CONCAT() is used. It can be also noted that the C preproces- sor converts all comments to whitespace before any macros are even considered. The use of either macro is discouraged in complex constructs.BSDDecember 16, 2010 BSD
Related Man Pages |
---|
getsubopt(3) - mojave |
__concat(3) - netbsd |
__string(3) - netbsd |
__unvolatile(3) - netbsd |
getsubopt(3) - freebsd |
Similar Topics in the Unix Linux Community |
---|
p4.pl 0.1 (Default branch) |
Macro to put single quotes around character |
GCC: General Macro for BSD |