⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mrepeat.h

📁 FreeRTOS is a portable, open source, mini Real Time Kernel - a free to download and royalty free RTO
💻 H
📖 第 1 页 / 共 2 页
字号:
/*This file is prepared for Doxygen automatic documentation generation.*/
/*! \file *********************************************************************
 *
 * \brief Preprocessor macro repeating utils.
 *
 * - Compiler:           IAR EWAVR32 and GNU GCC for AVR32
 * - Supported devices:  All AVR32 devices can be used.
 *
 * \author               Atmel Corporation: http://www.atmel.com \n
 *                       Support and FAQ: http://support.atmel.no/
 *
 ******************************************************************************/

/* Copyright (c) 2007, Atmel Corporation All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * 3. The name of ATMEL may not be used to endorse or promote products derived
 * from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY ATMEL ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
 * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */


#ifndef _MREPEAT_H_
#define _MREPEAT_H_

#include "preprocessor.h"


//! Maximal number of repetitions supported by MREPEAT.
#define MREPEAT_LIMIT   256

/*! \brief Macro repeat.
 *
 * This macro represents a horizontal repetition construct.
 *
 * \param count  The number of repetitious calls to macro. Valid values range from 0 to MREPEAT_LIMIT.
 * \param macro  A binary operation of the form macro(n, data). This macro is expanded by MREPEAT with
 *               the current repetition number and the auxiliary data argument.
 * \param data   Auxiliary data passed to macro.
 *
 * \return       <tt>macro(0, data) macro(1, data) ... macro(count - 1, data)</tt>
 */
#define MREPEAT(count, macro, data)         TPASTE2(MREPEAT, count)(macro, data)

#define MREPEAT0(  macro, data)
#define MREPEAT1(  macro, data)       MREPEAT0(  macro, data)   macro(  0, data)
#define MREPEAT2(  macro, data)       MREPEAT1(  macro, data)   macro(  1, data)
#define MREPEAT3(  macro, data)       MREPEAT2(  macro, data)   macro(  2, data)
#define MREPEAT4(  macro, data)       MREPEAT3(  macro, data)   macro(  3, data)
#define MREPEAT5(  macro, data)       MREPEAT4(  macro, data)   macro(  4, data)
#define MREPEAT6(  macro, data)       MREPEAT5(  macro, data)   macro(  5, data)
#define MREPEAT7(  macro, data)       MREPEAT6(  macro, data)   macro(  6, data)
#define MREPEAT8(  macro, data)       MREPEAT7(  macro, data)   macro(  7, data)
#define MREPEAT9(  macro, data)       MREPEAT8(  macro, data)   macro(  8, data)
#define MREPEAT10( macro, data)       MREPEAT9(  macro, data)   macro(  9, data)
#define MREPEAT11( macro, data)       MREPEAT10( macro, data)   macro( 10, data)
#define MREPEAT12( macro, data)       MREPEAT11( macro, data)   macro( 11, data)
#define MREPEAT13( macro, data)       MREPEAT12( macro, data)   macro( 12, data)
#define MREPEAT14( macro, data)       MREPEAT13( macro, data)   macro( 13, data)
#define MREPEAT15( macro, data)       MREPEAT14( macro, data)   macro( 14, data)
#define MREPEAT16( macro, data)       MREPEAT15( macro, data)   macro( 15, data)
#define MREPEAT17( macro, data)       MREPEAT16( macro, data)   macro( 16, data)
#define MREPEAT18( macro, data)       MREPEAT17( macro, data)   macro( 17, data)
#define MREPEAT19( macro, data)       MREPEAT18( macro, data)   macro( 18, data)
#define MREPEAT20( macro, data)       MREPEAT19( macro, data)   macro( 19, data)
#define MREPEAT21( macro, data)       MREPEAT20( macro, data)   macro( 20, data)
#define MREPEAT22( macro, data)       MREPEAT21( macro, data)   macro( 21, data)
#define MREPEAT23( macro, data)       MREPEAT22( macro, data)   macro( 22, data)
#define MREPEAT24( macro, data)       MREPEAT23( macro, data)   macro( 23, data)
#define MREPEAT25( macro, data)       MREPEAT24( macro, data)   macro( 24, data)
#define MREPEAT26( macro, data)       MREPEAT25( macro, data)   macro( 25, data)
#define MREPEAT27( macro, data)       MREPEAT26( macro, data)   macro( 26, data)
#define MREPEAT28( macro, data)       MREPEAT27( macro, data)   macro( 27, data)
#define MREPEAT29( macro, data)       MREPEAT28( macro, data)   macro( 28, data)
#define MREPEAT30( macro, data)       MREPEAT29( macro, data)   macro( 29, data)
#define MREPEAT31( macro, data)       MREPEAT30( macro, data)   macro( 30, data)
#define MREPEAT32( macro, data)       MREPEAT31( macro, data)   macro( 31, data)
#define MREPEAT33( macro, data)       MREPEAT32( macro, data)   macro( 32, data)
#define MREPEAT34( macro, data)       MREPEAT33( macro, data)   macro( 33, data)
#define MREPEAT35( macro, data)       MREPEAT34( macro, data)   macro( 34, data)
#define MREPEAT36( macro, data)       MREPEAT35( macro, data)   macro( 35, data)
#define MREPEAT37( macro, data)       MREPEAT36( macro, data)   macro( 36, data)
#define MREPEAT38( macro, data)       MREPEAT37( macro, data)   macro( 37, data)
#define MREPEAT39( macro, data)       MREPEAT38( macro, data)   macro( 38, data)
#define MREPEAT40( macro, data)       MREPEAT39( macro, data)   macro( 39, data)
#define MREPEAT41( macro, data)       MREPEAT40( macro, data)   macro( 40, data)
#define MREPEAT42( macro, data)       MREPEAT41( macro, data)   macro( 41, data)
#define MREPEAT43( macro, data)       MREPEAT42( macro, data)   macro( 42, data)
#define MREPEAT44( macro, data)       MREPEAT43( macro, data)   macro( 43, data)
#define MREPEAT45( macro, data)       MREPEAT44( macro, data)   macro( 44, data)
#define MREPEAT46( macro, data)       MREPEAT45( macro, data)   macro( 45, data)
#define MREPEAT47( macro, data)       MREPEAT46( macro, data)   macro( 46, data)
#define MREPEAT48( macro, data)       MREPEAT47( macro, data)   macro( 47, data)
#define MREPEAT49( macro, data)       MREPEAT48( macro, data)   macro( 48, data)
#define MREPEAT50( macro, data)       MREPEAT49( macro, data)   macro( 49, data)
#define MREPEAT51( macro, data)       MREPEAT50( macro, data)   macro( 50, data)
#define MREPEAT52( macro, data)       MREPEAT51( macro, data)   macro( 51, data)
#define MREPEAT53( macro, data)       MREPEAT52( macro, data)   macro( 52, data)
#define MREPEAT54( macro, data)       MREPEAT53( macro, data)   macro( 53, data)
#define MREPEAT55( macro, data)       MREPEAT54( macro, data)   macro( 54, data)
#define MREPEAT56( macro, data)       MREPEAT55( macro, data)   macro( 55, data)
#define MREPEAT57( macro, data)       MREPEAT56( macro, data)   macro( 56, data)
#define MREPEAT58( macro, data)       MREPEAT57( macro, data)   macro( 57, data)
#define MREPEAT59( macro, data)       MREPEAT58( macro, data)   macro( 58, data)
#define MREPEAT60( macro, data)       MREPEAT59( macro, data)   macro( 59, data)
#define MREPEAT61( macro, data)       MREPEAT60( macro, data)   macro( 60, data)
#define MREPEAT62( macro, data)       MREPEAT61( macro, data)   macro( 61, data)
#define MREPEAT63( macro, data)       MREPEAT62( macro, data)   macro( 62, data)
#define MREPEAT64( macro, data)       MREPEAT63( macro, data)   macro( 63, data)
#define MREPEAT65( macro, data)       MREPEAT64( macro, data)   macro( 64, data)
#define MREPEAT66( macro, data)       MREPEAT65( macro, data)   macro( 65, data)
#define MREPEAT67( macro, data)       MREPEAT66( macro, data)   macro( 66, data)
#define MREPEAT68( macro, data)       MREPEAT67( macro, data)   macro( 67, data)
#define MREPEAT69( macro, data)       MREPEAT68( macro, data)   macro( 68, data)
#define MREPEAT70( macro, data)       MREPEAT69( macro, data)   macro( 69, data)
#define MREPEAT71( macro, data)       MREPEAT70( macro, data)   macro( 70, data)
#define MREPEAT72( macro, data)       MREPEAT71( macro, data)   macro( 71, data)
#define MREPEAT73( macro, data)       MREPEAT72( macro, data)   macro( 72, data)
#define MREPEAT74( macro, data)       MREPEAT73( macro, data)   macro( 73, data)
#define MREPEAT75( macro, data)       MREPEAT74( macro, data)   macro( 74, data)
#define MREPEAT76( macro, data)       MREPEAT75( macro, data)   macro( 75, data)
#define MREPEAT77( macro, data)       MREPEAT76( macro, data)   macro( 76, data)
#define MREPEAT78( macro, data)       MREPEAT77( macro, data)   macro( 77, data)
#define MREPEAT79( macro, data)       MREPEAT78( macro, data)   macro( 78, data)
#define MREPEAT80( macro, data)       MREPEAT79( macro, data)   macro( 79, data)
#define MREPEAT81( macro, data)       MREPEAT80( macro, data)   macro( 80, data)
#define MREPEAT82( macro, data)       MREPEAT81( macro, data)   macro( 81, data)
#define MREPEAT83( macro, data)       MREPEAT82( macro, data)   macro( 82, data)
#define MREPEAT84( macro, data)       MREPEAT83( macro, data)   macro( 83, data)
#define MREPEAT85( macro, data)       MREPEAT84( macro, data)   macro( 84, data)
#define MREPEAT86( macro, data)       MREPEAT85( macro, data)   macro( 85, data)
#define MREPEAT87( macro, data)       MREPEAT86( macro, data)   macro( 86, data)
#define MREPEAT88( macro, data)       MREPEAT87( macro, data)   macro( 87, data)
#define MREPEAT89( macro, data)       MREPEAT88( macro, data)   macro( 88, data)
#define MREPEAT90( macro, data)       MREPEAT89( macro, data)   macro( 89, data)
#define MREPEAT91( macro, data)       MREPEAT90( macro, data)   macro( 90, data)
#define MREPEAT92( macro, data)       MREPEAT91( macro, data)   macro( 91, data)
#define MREPEAT93( macro, data)       MREPEAT92( macro, data)   macro( 92, data)
#define MREPEAT94( macro, data)       MREPEAT93( macro, data)   macro( 93, data)
#define MREPEAT95( macro, data)       MREPEAT94( macro, data)   macro( 94, data)
#define MREPEAT96( macro, data)       MREPEAT95( macro, data)   macro( 95, data)
#define MREPEAT97( macro, data)       MREPEAT96( macro, data)   macro( 96, data)
#define MREPEAT98( macro, data)       MREPEAT97( macro, data)   macro( 97, data)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -