资源简介

lua_cjson 在windows 平台的编译工程,找了很多都没有,下载没有积分,只好自己动手了,测试通过的,里面包含了lua_cjson 的源码,解压后进入目录,build 文件夹下的 sln 解决方案,打开即可,也有已经生成的 cjson.lib 和 cjson.dll., 把 cjson.dll copy 到 lua.exe 同级目录下,require("cjson") 测试可用

资源截图

代码片段和文件信息

/****************************************************************
 *
 * The author of this software is David M. Gay.
 *
 * Copyright (c) 1991 2000 2001 by Lucent Technologies.
 *
 * Permission to use copy modify and distribute this software for any
 * purpose without fee is hereby granted provided that this entire notice
 * is included in all copies of any software which is or includes a copy
 * or modification of this software and in all copies of the supporting
 * documentation for such software.
 *
 * THIS SOFTWARE IS BEING PROVIDED “AS IS“ WITHOUT ANY EXPRESS OR IMPLIED
 * WARRANTY.  IN PARTICULAR NEITHER THE AUTHOR NOR LUCENT MAKES ANY
 * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
 * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 *
 ***************************************************************/

/* Please send bug reports to David M. Gay (dmg at acm dot org
 * with “ at “ changed at “@“ and “ dot “ changed to “.“). */

/* On a machine with IEEE extended-precision registers it is
 * necessary to specify double-precision (53-bit) rounding precision
 * before invoking strtod or dtoa.  If the machine uses (the equivalent
 * of) Intel 80x87 arithmetic the call
 * _control87(PC_53 MCW_PC);
 * does this with many compilers.  Whether this or another call is
 * appropriate depends on the compiler; for this to work it may be
 * necessary to #include “float.h“ or another system-dependent header
 * file.
 */

/* strtod for IEEE- VAX- and IBM-arithmetic machines.
 *
 * This strtod returns a nearest machine number to the input decimal
 * string (or sets errno to ERANGE).  With IEEE arithmetic ties are
 * broken by the IEEE round-even rule.  Otherwise ties are broken by
 * biased rounding (add half and chop).
 *
 * Inspired loosely by William D. Clinger‘s paper “How to Read Floating
 * Point Numbers Accurately“ [Proc. ACM SIGPLAN ‘90 pp. 92-101].
 *
 * Modifications:
 *
 * 1. We only require IEEE IBM or VAX double-precision
 * arithmetic (not IEEE double-extended).
 * 2. We get by with floating-point arithmetic in a case that
 * Clinger missed -- when we‘re computing d * 10^n
 * for a small integer d and the integer n is not too
 * much larger than 22 (the maximum integer k for which
 * we can represent 10^k exactly) we may be able to
 * compute (d*10^k) * 10^(e-k) with just one roundoff.
 * 3. Rather than a bit-at-a-time adjustment of the binary
 * result in the hard case we use floating-point
 * arithmetic to determine the adjustment to within
 * one bit; only in really hard cases do we need to
 * compute a second residual.
 * 4. Because of 3. we don‘t need a large table of powers of 10
 * for ten-to-e (just some small tables e.g. of 10^k
 * for 0 <= k <= 22).
 */

/*
 * #define IEEE_8087 for IEEE-arithmetic machines where the least
 * significant byte has the lowest address.
 * #define IEEE_MC68k for IEEE-arithmetic machines where the most
 * significant byte has the lowest ad

评论

共有 条评论