diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2013-04-06 22:07:54 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2013-04-06 22:07:54 +0000 |
commit | 7c3867da33250e5a20d26f64c5a127323c2094cc (patch) | |
tree | 6c0bc8892eaf7d7767e20bb1d2296389fd13b959 /LUFA/Common | |
parent | 7dc77a6abc7f3a86970ca48d355b55ed5931a350 (diff) | |
download | lufa-7c3867da33250e5a20d26f64c5a127323c2094cc.tar.gz lufa-7c3867da33250e5a20d26f64c5a127323c2094cc.tar.bz2 lufa-7c3867da33250e5a20d26f64c5a127323c2094cc.zip |
Added new CONCAT() and CONCAT_EXPANDED() convenience macros.
Diffstat (limited to 'LUFA/Common')
-rw-r--r-- | LUFA/Common/Common.h | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h index 9bfe1f3b3..c0a711261 100644 --- a/LUFA/Common/Common.h +++ b/LUFA/Common/Common.h @@ -112,7 +112,7 @@ #include <math.h> // === TODO: Find abstracted way to handle these === - #define PROGMEM + #define PROGMEM #define pgm_read_byte(x) *x #define memcmp_P(...) memcmp(__VA_ARGS__) #define memcpy_P(...) memcpy(__VA_ARGS__) @@ -178,8 +178,8 @@ * \attention This macro should only be used with operands that do not have side effects from being evaluated * multiple times. * - * \param[in] x First value to compare - * \param[in] y First value to compare + * \param[in] x First value to compare. + * \param[in] y First value to compare. * * \return The smaller of the two input parameters */ @@ -207,6 +207,26 @@ #define STRINGIFY_EXPANDED(x) STRINGIFY(x) #endif + #if !defined(CONCAT) || defined(__DOXYGEN__) + /** Concatenates the given input into a single token, via the C Preprocessor. + * + * \param[in] x First item to concatenate. + * \param[in] y Second item to concatenate. + * + * \return Concatenated version of the input. + */ + #define CONCAT(x, y) x ## y + + /** CConcatenates the given input into a single token after macro expansion, via the C Preprocessor. + * + * \param[in] x First item to concatenate. + * \param[in] y Second item to concatenate. + * + * \return Concatenated version of the expanded input. + */ + #define CONCAT_EXPANDED(x, y) CONCAT(x, y) + #endif + #if !defined(ISR) || defined(__DOXYGEN__) /** Macro for the definition of interrupt service routines, so that the compiler can insert the required * prologue and epilogue code to properly manage the interrupt routine without affecting the main thread's |