*** UNIX MANUAL PAGE BROWSER ***

A Nergahak database for man pages research.

Navigation

Directory Browser

1Browse 4.4BSD4.4BSD
1Browse Digital UNIXDigital UNIX 4.0e
1Browse FreeBSDFreeBSD 14.3
1Browse MINIXMINIX 3.4.0rc6-d5e4fc0
1Browse NetBSDNetBSD 10.1
1Browse OpenBSDOpenBSD 7.7
1Browse UNIX v7Version 7 UNIX
1Browse UNIX v10Version 10 UNIX

Manual Page Search

Manual Page Result

0 Command: __STRING | Section: 3 | Source: NetBSD | File: __STRING.3
__CONCAT(3) FreeBSD Library Functions Manual __CONCAT(3) NAME __CONCAT, __STRING - argument substitution SYNOPSIS #include <sys/cdefs.h> xy __CONCAT(x, y); const char * __STRING(x); DESCRIPTION The __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". EXAMPLES The following two printf(3) calls produce the same output: #define Net 0x01 #define BSD 0x02 #define NetBSD "NetBSD" (void)printf("%s\n", __CONCAT(Net, BSD)); (void)printf("%s%s\n", __STRING(Net), __STRING(BSD)); SEE ALSO cpp(1), cdefs(3) HISTORY The __CONCAT() and __STRING() macros first appeared in NetBSD 1.3. CAVEATS Many 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 preprocessor converts all comments to whitespace before any macros are even considered. The use of either macro is discouraged in complex constructs. Use of this macro is non-portable; this is part of the implementation namespace and should only be used in NetBSD code. FreeBSD 14.1-RELEASE-p8 October 17, 2013 FreeBSD 14.1-RELEASE-p8

Navigation Options