?? usingendian.html
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Content-Language" content="zh-cn">
<title>使用SDL:字節序無關</title>
</head>
<body bgcolor="#FFF8DC" text="#000000">
<TABLE>
<TR><!--#include file="../menu.tmpl" -->
<TD>
<p align="center">
[<a href="usingtimers.html">前一頁</a>]
<a href="toc.html"><font color="#8B0000">目錄</font></a>
</p>
<h1><font color="#8B0000">使用SDL</font></h1>
<h2>字節序無關</h2>
<table border="0" cellpadding="4">
<tr>
<td valign="top"><ul>
<li><strong>偵測當前系統的字節序 </strong></li>
</ul>
<blockquote>
<p>根據當前系統的字節序,C預處理定義SDL_BYTEORDER要么定義成SDL_LIL_ENDIAN,要么是SDL_BIG_ENDIAN。</p>
<p>小端字節序系統寫磁盤時的數據安排:
<br> [低字節] [高字節] <br>
大端字節序系統寫磁盤時的數據安排:
<br> [高字節] [低字節] <br>
</p>
</blockquote>
</td>
<td valign="top" width="200" bgcolor="#D3D3D3"><strong>提示:</strong><br>
x86系統是小端字節序系統; PPC系統是大端字節序系統。 </td>
</tr>
</table>
<table border="0" cellpadding="50">
<tr>
<td valign="top"><font color="#000080"><strong>例程:</strong></font>
<pre>
<font color="#0000FF">#include</font> "<font color="#000000">SDL_endian.h</font>"
<font color="#0000FF">#if</font> SDL_BYTEORDER == SDL_LIL_ENDIAN
<font color="#0000FF">#define</font> SWAP16(X) (X)
<font color="#0000FF">#define</font> SWAP32(X) (X)
<font color="#0000FF">#else</font>
<font color="#0000FF">#define</font> SWAP16(X) SDL_Swap16(X)
<font color="#0000FF">#define</font> SWAP32(X) SDL_Swap32(X)
<font color="#0000FF">#endif</font>
</pre>
</td>
</tr>
</table>
<table border="0" cellpadding="4">
<tr>
<td valign="top"><ul>
<li><strong>根據系統的字節序轉換數據</strong></li>
</ul>
<blockquote>
<p>SDL在SDL_endian.h中定義了一些高效的宏,SDL_Swap16()和
SDL_Swap32()實現字節序的交換。另外也有從指定的字節序轉換成本地系統字節序的宏。 </p>
</blockquote>
</td>
<td valign="top" width="200" bgcolor="#D3D3D3"><strong>提示:</strong><br>
盡管你需要了解系統字節序,但你并不需要所有的數據交換函數,包含 SDL_byteorder.h,而不是
SDL_endian.h </td>
</tr>
</table>
<table border="0" cellpadding="50">
<tr>
<td valign="top"><font color="#000080"><strong>例程:</strong></font><pre>
<font color="#0000FF">#include</font> "<font color="#000000">SDL_endian.h</font>"
<font color="#008000">void</font> ReadScanline16(FILE *file, <font
color="#008000">Uint16 *</font>scanline, <font color="#008000">int</font> length)
{
fread(scanline, length, sizeof(Uint16), file);
<font color="#0000FF">if</font> ( SDL_BYTEORDER == SDL_BIG_ENDIAN ) {
<font color="#008000">int</font> i;
<font color="#0000FF">for</font> ( i=length-1; i >= 0; --i )
scanline[i] = SDL_SwapLE16(scanline[i]);
}
}
</pre>
</td>
</tr>
</table>
<p align="center">
[<a href="usingtimers.html">前一頁</a>]
<a href="toc.html"><font color="#8B0000">目錄</font></a>
</p>
</TABLE>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -