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

📄 platform.h

📁 This function takes a 16-, 24-, or 32-byte key and generates the RC6 key schedule in array S.
💻 H
字号:
#ifndef PLATFORM_H
#define PLATFORM_H

/*
    If we can't use the compiler's intrinsic rotation functions,
    we'll use these macros.
*/

#define	ROL(x, n) (((x) << ((n) & 0x1F)) | ((x) >> (32 - ((n) & 0x1F))))
#define	ROR(x, n) (((x) >> ((n) & 0x1F)) | ((x) << (32 - ((n) & 0x1F))))

/*
    If we're using the Borland compiler, set the ROL and ROR macros
    to call Borland's intrinsic rotation functions.
*/

#if (0) && defined(__BORLANDC__) && (__BORLANDC__ >= 0x462)
#include <stdlib.h>
#pragma inline __lrotl__
#pragma inline __lrotr__
#undef ROL
#undef ROR
#define	ROL(x, n) __lrotl__(x, n)
#define	ROR(x, n) __lrotr__(x, n)
#endif

/*
    If we're using the Microsoft compiler, set the ROL and ROR macros
    to call Microsoft's intrinsic rotation functions.
*/

#ifdef _MSC_VER
#include <stdlib.h>
#undef ROL
#undef ROR
#pragma intrinsic(_lrotl, _lrotr)
#define	ROL(x, n) _lrotl(x, n)			
#define	ROR(x, n) _lrotr(x, n)
#endif

#endif

⌨️ 快捷键说明

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