Added new CONCAT() and CONCAT_EXPANDED() convenience macros.

This commit is contained in:
Dean Camera 2013-04-06 22:07:54 +00:00
parent 7dc77a6abc
commit 7c3867da33
8 changed files with 53 additions and 51 deletions

View file

@ -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