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

📄 arrays_byte.sgml

📁 GLib是GTK+和GNOME工程的基础底层核心程序库
💻 SGML
📖 第 1 页 / 共 2 页
字号:
<refentry id="glib-Byte-Arrays"><refmeta><refentrytitle>Byte Arrays</refentrytitle><manvolnum>3</manvolnum><refmiscinfo>GLIB Library</refmiscinfo></refmeta><refnamediv><refname>Byte Arrays</refname><refpurpose>arrays of bytes, which grow automatically as elements are added.</refpurpose></refnamediv><refsynopsisdiv><title>Synopsis</title><synopsis>#include &lt;glib.h&gt;struct      <link linkend="GByteArray">GByteArray</link>;<link linkend="GByteArray">GByteArray</link>* <link linkend="g-byte-array-new">g_byte_array_new</link>                (void);<link linkend="GByteArray">GByteArray</link>* <link linkend="g-byte-array-sized-new">g_byte_array_sized_new</link>          (<link linkend="guint">guint</link> reserved_size);<link linkend="GByteArray">GByteArray</link>* <link linkend="g-byte-array-append">g_byte_array_append</link>             (<link linkend="GByteArray">GByteArray</link> *array,                                             const <link linkend="guint8">guint8</link> *data,                                             <link linkend="guint">guint</link> len);<link linkend="GByteArray">GByteArray</link>* <link linkend="g-byte-array-prepend">g_byte_array_prepend</link>            (<link linkend="GByteArray">GByteArray</link> *array,                                             const <link linkend="guint8">guint8</link> *data,                                             <link linkend="guint">guint</link> len);<link linkend="GByteArray">GByteArray</link>* <link linkend="g-byte-array-remove-index">g_byte_array_remove_index</link>       (<link linkend="GByteArray">GByteArray</link> *array,                                             <link linkend="guint">guint</link> index);<link linkend="GByteArray">GByteArray</link>* <link linkend="g-byte-array-remove-index-fast">g_byte_array_remove_index_fast</link>  (<link linkend="GByteArray">GByteArray</link> *array,                                             <link linkend="guint">guint</link> index);void        <link linkend="g-byte-array-sort">g_byte_array_sort</link>               (<link linkend="GByteArray">GByteArray</link> *array,                                             <link linkend="GCompareFunc">GCompareFunc</link> compare_func);void        <link linkend="g-byte-array-sort-with-data">g_byte_array_sort_with_data</link>     (<link linkend="GByteArray">GByteArray</link> *array,                                             <link linkend="GCompareDataFunc">GCompareDataFunc</link> compare_func,                                             <link linkend="gpointer">gpointer</link> user_data);<link linkend="GByteArray">GByteArray</link>* <link linkend="g-byte-array-set-size">g_byte_array_set_size</link>           (<link linkend="GByteArray">GByteArray</link> *array,                                             <link linkend="guint">guint</link> length);<link linkend="guint8">guint8</link>*     <link linkend="g-byte-array-free">g_byte_array_free</link>               (<link linkend="GByteArray">GByteArray</link> *array,                                             <link linkend="gboolean">gboolean</link> free_segment);</synopsis></refsynopsisdiv><refsect1><title>Description</title><para><link linkend="GByteArray">GByteArray</link> is based on <link linkend="GArray">GArray</link>, to provide arrays of bytes which growautomatically as elements are added.</para><para>To create a new <link linkend="GByteArray">GByteArray</link> use <link linkend="g-byte-array-new">g_byte_array_new</link>().</para><para>To add elements to a <link linkend="GByteArray">GByteArray</link>, use <link linkend="g-byte-array-append">g_byte_array_append</link>(), and<link linkend="g-byte-array-prepend">g_byte_array_prepend</link>().</para><para>To set the size of a <link linkend="GByteArray">GByteArray</link>, use <link linkend="g-byte-array-set-size">g_byte_array_set_size</link>().</para><para>To free a <link linkend="GByteArray">GByteArray</link>, use <link linkend="g-byte-array-free">g_byte_array_free</link>().</para><example><title>Using a <structname>GByteArray</structname>.</title><programlisting>  GByteArray *gbarray;  gint i;  gbarray = g_byte_array_new (<!>);  for (i = 0; i < 10000; i++)    g_byte_array_append (gbarray, (guint8*) "abcd", 4);  for (i = 0; i < 10000; i++)    {      g_assert (gbarray->data[4*i] == 'a');      g_assert (gbarray->data[4*i+1] == 'b');      g_assert (gbarray->data[4*i+2] == 'c');      g_assert (gbarray->data[4*i+3] == 'd');    }  g_byte_array_free (gbarray, TRUE);</programlisting></example></refsect1><refsect1><title>Details</title><refsect2><title><anchor id="GByteArray">struct GByteArray</title><programlisting>struct GByteArray{  guint8 *data;  guint	  len;};</programlisting><para>The <structname>GByteArray</structname> struct allows access to the public fields of a <structname>GByteArray</structname>.</para><informaltable pgwide="1" frame="none" role="struct"><tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*"><tbody><row><entry><link linkend="guint8">guint8</link> *<structfield>data</structfield></entry><entry>a pointer to the element data. The data may be moved as elements areadded to the <link linkend="GByteArray">GByteArray</link>.</entry></row><row><entry><link linkend="guint">guint</link> <structfield>len</structfield></entry><entry>the number of elements in the <link linkend="GByteArray">GByteArray</link>.</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title><anchor id="g-byte-array-new">g_byte_array_new ()</title><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_new                (void);</programlisting><para>Creates a new <link linkend="GByteArray">GByteArray</link>.</para><informaltable pgwide="1" frame="none" role="params"><tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*"><tbody><row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the new <link linkend="GByteArray">GByteArray</link>.</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title><anchor id="g-byte-array-sized-new">g_byte_array_sized_new ()</title><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_sized_new          (<link linkend="guint">guint</link> reserved_size);</programlisting><para>Creates a new <link linkend="GByteArray">GByteArray</link> with <parameter>reserved_size</parameter> bytes preallocated. Thisavoids frequent reallocation, if you are going to add many bytes tothe array. Note however that the size of the array is still 0.</para><informaltable pgwide="1" frame="none" role="params"><tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*"><tbody><row><entry align="right"><parameter>reserved_size</parameter>&nbsp;:</entry><entry>number of bytes preallocated.</entry></row><row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the new <link linkend="GByteArray">GByteArray</link>.</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title><anchor id="g-byte-array-append">g_byte_array_append ()</title><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_append             (<link linkend="GByteArray">GByteArray</link> *array,                                             const <link linkend="guint8">guint8</link> *data,                                             <link linkend="guint">guint</link> len);</programlisting><para>Adds the given bytes to the end of the <link linkend="GByteArray">GByteArray</link>.The array will grow in size automatically if necessary.</para><informaltable pgwide="1" frame="none" role="params"><tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*"><tbody><row><entry align="right"><parameter>array</parameter>&nbsp;:</entry><entry>a <link linkend="GByteArray">GByteArray</link>.</entry></row><row><entry align="right"><parameter>data</parameter>&nbsp;:</entry><entry>the byte data to be added.</entry></row><row><entry align="right"><parameter>len</parameter>&nbsp;:</entry><entry>the number of bytes to add.</entry></row><row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the <link linkend="GByteArray">GByteArray</link>.

⌨️ 快捷键说明

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