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

📄 llimits.h

📁 一个2D电磁场FEM计算的VC++源程序
💻 H
字号:
/*** $Id: llimits.h,v 1.19 2000/10/26 12:47:05 roberto Exp $** Limits, basic types, and some other "installation-dependent" definitions** See Copyright Notice in lua.h*/#ifndef llimits_h#define llimits_h#include <limits.h>#include <stddef.h>/*** try to find number of bits in an integer*/#ifndef BITS_INT/* avoid overflows in comparison */#if INT_MAX-20 < 32760#define	BITS_INT	16#else#if INT_MAX > 2147483640L/* machine has at least 32 bits */#define BITS_INT	32#else#error "you must define BITS_INT with number of bits in an integer"#endif#endif#endif/*** Define the type `number' of Lua** GREP LUA_NUMBER to change that*/#ifndef LUA_NUM_TYPE#define LUA_NUM_TYPE double#endiftypedef LUA_NUM_TYPE Number;/* function to convert a Number to a string */#define NUMBER_FMT	"%.16g"		/* LUA_NUMBER */#define lua_number2str(s,n)	sprintf((s), NUMBER_FMT, (n))/* function to convert a string to a Number */#define lua_str2number(s,p)	strtod((s), (p))typedef unsigned long lint32;  /* unsigned int with at least 32 bits */#define MAX_SIZET	((size_t)(~(size_t)0)-2)#define MAX_INT (INT_MAX-2)  /* maximum value of an int (-2 for safety) *//*** conversion of pointer to int (for hashing only)** (the shift removes bits that are usually 0 because of alignment)*/#define IntPoint(p)  (((unsigned long)(p)) >> 3)#define MINPOWER2       4       /* minimum size for "growing" vectors */#ifndef DEFAULT_STACK_SIZE#define DEFAULT_STACK_SIZE      1024#endif/* type to ensure maximum alignment */union L_Umaxalign { double d; char *s; long l; };/*** type for virtual-machine instructions** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h)** For a very small machine, you may change that to 2 bytes (and adjust** the following limits accordingly)*/typedef unsigned long Instruction;/*** size and position of opcode arguments.** For an instruction with 2 bytes, size is 16, and size_b can be 5** (accordingly, size_u will be 10, and size_a will be 5)*/#define SIZE_INSTRUCTION        32#define SIZE_B          9#define SIZE_OP         6#define SIZE_U          (SIZE_INSTRUCTION-SIZE_OP)#define POS_U           SIZE_OP#define POS_B           SIZE_OP#define SIZE_A          (SIZE_INSTRUCTION-(SIZE_OP+SIZE_B))#define POS_A           (SIZE_OP+SIZE_B)/*** limits for opcode arguments.** we use (signed) int to manipulate most arguments,** so they must fit in BITS_INT-1 bits (-1 for sign)*/#if SIZE_U < BITS_INT-1#define MAXARG_U        ((1<<SIZE_U)-1)#define MAXARG_S        (MAXARG_U>>1)		/* `S' is signed */#else#define MAXARG_U        MAX_INT#define MAXARG_S        MAX_INT#endif#if SIZE_A < BITS_INT-1#define MAXARG_A        ((1<<SIZE_A)-1)#else#define MAXARG_A        MAX_INT#endif#if SIZE_B < BITS_INT-1#define MAXARG_B        ((1<<SIZE_B)-1)#else#define MAXARG_B        MAX_INT#endif/* maximum stack size in a function */#ifndef MAXSTACK#define MAXSTACK	250#endif#if MAXSTACK > MAXARG_B#undef MAXSTACK#define MAXSTACK	MAXARG_B#endif/* maximum number of local variables */#ifndef MAXLOCALS#define MAXLOCALS 200           /* arbitrary limit (<MAXSTACK) */#endif#if MAXLOCALS>=MAXSTACK#undef MAXLOCALS#define MAXLOCALS	(MAXSTACK-1)#endif/* maximum number of upvalues */#ifndef MAXUPVALUES#define MAXUPVALUES 32          /* arbitrary limit (<=MAXARG_B) */#endif#if MAXUPVALUES>MAXARG_B#undef MAXUPVALUES#define MAXUPVALUES	MAXARG_B#endif/* maximum number of variables in the left side of an assignment */#ifndef MAXVARSLH#define MAXVARSLH 100           /* arbitrary limit (<MULT_RET) */#endif#if MAXVARSLH>=MULT_RET#undef MAXVARSLH#define MAXVARSLH	(MULT_RET-1)#endif/* maximum number of parameters in a function */#ifndef MAXPARAMS#define MAXPARAMS 100           /* arbitrary limit (<MAXLOCALS) */#endif#if MAXPARAMS>=MAXLOCALS#undef MAXPARAMS#define MAXPARAMS	(MAXLOCALS-1)#endif/* number of list items to accumulate before a SETLIST instruction */#define LFIELDS_PER_FLUSH	64#if LFIELDS_PER_FLUSH>(MAXSTACK/4)#undef LFIELDS_PER_FLUSH#define LFIELDS_PER_FLUSH	(MAXSTACK/4)#endif/* number of record items to accumulate before a SETMAP instruction *//* (each item counts 2 elements on the stack: an index and a value) */#define RFIELDS_PER_FLUSH	(LFIELDS_PER_FLUSH/2)/* maximum lookback to find a real constant (for code generation) */#ifndef LOOKBACKNUMS#define LOOKBACKNUMS    20      /* arbitrary constant */#endif#endif

⌨️ 快捷键说明

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