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

📄 stream.c

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 C
字号:
/* * @(#)stream.c	1.12 06/10/25 * * Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER *  * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation.  *  * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt).  *  * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA  *  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions.  */#include "util.h" /* Needed for linux, do not remove */#include "stream.h"#if CVM_ENDIANNESS == CVM_LITTLE_ENDIANjfloat stream_encodeFloat(jfloat theFloat) {    union {        jfloat f;        jint i;    } sF;    sF.f = theFloat;    sF.i = HOST_TO_JAVA_INT(sF.i);    return sF.f;}#endif /* CVM_ENDIANNESS == CVM_LITTLE_ENDIAN */#if (CVM_ENDIANNESS == CVM_LITTLE_ENDIAN) || \    (CVM_ENDIANNESS != CVM_DOUBLE_ENDIANNESS)jdouble stream_encodeDouble(jdouble d){    union {        jdouble d;        jlong l;#if CVM_ENDIANNESS != CVM_DOUBLE_ENDIANNESS        jint i[2];#endif    } sD;    sD.d = d;#if CVM_ENDIANNESS != CVM_DOUBLE_ENDIANNESS    /* The desired word endianness is big endian.       If the platform has little endian byte order and little endian word       order, then the call to HOST_TO_JAVA_LONG() below will convert the word       endianness as well.       If the platform has little endian byte order and big endian word order,       then we need to swap the high and low words first to cancel out the       word swapping effect of the HOST_TO_JAVA_LONG() macro below.       If the platform has big endian byte order and little endian word order,       then we only need to swap the word order.  No need to call the       HOST_TO_JAVA_LONG() macro below.       If the platform has big endian byte order and big endian word order,       then we have nothing to do and won't be calling this function anyway.       Hence, we only need to do the word order swap here if the byte order       endianness does not equals the word order endianness for doubles.    */    {        jint i = sD.i[0];        sD.i[0] = sD.i[1];        sD.i[1] = i;    }#endif#if CVM_ENDIANNESS == CVM_LITTLE_ENDIAN    /* The desired byte endianness is big endian.  If the platform is little       endian, then we will need to reverse the byte order.  We can do that       using the HOST_TO_JAVA_LONG() macro which does the same thing for       64-bit long ints. */    sD.l = HOST_TO_JAVA_LONG(sD.l);#endif    return sD.d;}#endif /* (CVM_ENDIANNESS == CVM_LITTLE_ENDIAN) || \          (CVM_ENDIANNESS != CVM_DOUBLE_ENDIANNESS) */

⌨️ 快捷键说明

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