__STRING man page on NetBSD

Man page or keyword search:  
man Server   9087 pages
apropos Keyword Search (all sections)
Output format
NetBSD logo
[printable version]

__CONCAT(3)		 BSD 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 sin‐
     gle 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 consid‐
     ered.  The use of either macro is discouraged in complex constructs.

BSD			       December 16, 2010			   BSD
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server NetBSD

List of man pages available for NetBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net