Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

__unconst(3) [netbsd man page]

__UNCONST(3)						   BSD Library Functions Manual 					      __UNCONST(3)

__UNCONST -- compile time cast-away macro SYNOPSIS
#include <sys/cdefs.h> void __UNCONST(x); void __UNVOLATILE(x); DESCRIPTION
The __UNCONST() macro can be used to omit warnings produced by certain compilers when operating with pointers declared with the const type qualifier in a context without such qualifier. Examples include passing a pointer declared with the const qualifier to a function without such qualifier, and variable assignment from a const pointer to a non-const pointer. In the same vein, the __UNVOLATILE() macro can be used to exclude warnings related to the volatile type qualifier. IMPLEMENTATION NOTES
These macros are implemented by explicitly using unsigned long instead of intptr_t, a signed type guaranteed to hold a pointer. SEE ALSO
cc(1), cdefs(3) CAVEATS
As both macros may hide valid errors, their usage is not recommended unless there is a well-thought reason for a cast. A typical use case for __UNCONST() involve an API that does not follow the so-called ``const correctness'' even if it would be appropriate. Valid use cases of __UNVOLATILE() include passing a volatile pointer to memset(3). BSD
December 16, 2010 BSD

Check Out this Related Man Page

__CONCAT(3)						   BSD Library Functions Manual 					       __CONCAT(3)

__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 ", __CONCAT(Net, BSD)); (void)printf("%s%s ", __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 preproces- sor converts all comments to whitespace before any macros are even considered. The use of either macro is discouraged in complex constructs. BSD
December 16, 2010 BSD
Man Page

4 More Discussions You Might Find Interesting

1. Programming

Need a simple example of passing FILE pointers

Dear friends, can anybody pls tell me how to pass FILE pointer in c. I am so confused .. :confused: suppose I ve two function 1. file_open() 2. read_line() I want to call these function from main() function and in file_open() function it will open that file and in read_line()... (5 Replies)
Discussion started by: user_prady
5 Replies

2. Red Hat

cast from const void* to unsigned int loses precision

Hello everey one, here i am attempting to compile a c++ project .it's throughing the following errors. my machine details are as follows: Linux chmclozr0119 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:19 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux errors: ===== Generating... (0 Replies)
Discussion started by: mannam srinivas
0 Replies

3. What is on Your Mind?

New here

New here so I thought Id say hi (6 Replies)
Discussion started by: biggestmuscles
6 Replies

4. Shell Programming and Scripting

Text qualifier issue causing data alignment problem

Hello Everyone, I have a csv file with text qualifier as "" and data similar to below: "1","abc","address1","US" "2","def","address1 "characters in double-quote" address2","IND" "3","ghi","address1","UK" In above example, for record 2, we have an issue as in column3 contains double... (2 Replies)
Discussion started by: AnkitSenghani
2 Replies