mirror of /home/gitosis/repositories/libowfat.git
Mirror of :pserver:cvs@cvs.fefe.de:/cvs libowfat
https://www.fefe.de/libowfat/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
769 B
37 lines
769 B
/* this header file comes from libowfat, http://www.fefe.de/libowfat/ */ |
|
#ifndef _ISSET_H |
|
#define _ISSET_H |
|
|
|
/* |
|
How to check whether a preprocessor symbol is defined or not? |
|
Difficulty: it should work both in the preprocessor: |
|
|
|
#if is_set(FOO) |
|
|
|
and in C code (and then no code should be generated) |
|
|
|
if (is_set(FOO)) |
|
|
|
We will allow both |
|
|
|
#define FOO |
|
|
|
and |
|
|
|
#define FOO 1 |
|
*/ |
|
|
|
/* Original question posed by Linus Torvalds |
|
* https://plus.google.com/102150693225130002912/posts/9gntjh57dXt |
|
* Solution by comex |
|
* https://gist.github.com/2365372 |
|
*/ |
|
|
|
#define is_set(macro) is_set_(macro) |
|
#define macrotest_1 , |
|
#define macrotest_ , |
|
#define is_set_(value) is_set__(macrotest_##value) |
|
#define is_set__(comma) is_set___(comma 1, 0) |
|
#define is_set___(_, v, ...) v |
|
|
|
#endif
|
|
|