glib-trash-stacks.html

来自「最新gtk中文资料集」· HTML 代码 · 共 223 行

HTML
223
字号
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"><title>Trash Stacks</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="GLib Reference Manual"><link rel="up" href="glib-data-types.html" title="GLib Data Types"><link rel="prev" href="glib-Sequences.html" title="Sequences"><link rel="next" href="glib-Hash-Tables.html" title="Hash Tables"><meta name="generator" content="GTK-Doc V1.9 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="chapter" href="glib.html" title="GLib Overview"><link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals"><link rel="chapter" href="glib-core.html" title="GLib Core Application Support"><link rel="chapter" href="glib-utilities.html" title="GLib Utilities"><link rel="chapter" href="glib-data-types.html" title="GLib Data Types"><link rel="chapter" href="tools.html" title="GLib Tools"><link rel="index" href="ix01.html" title="Index"><link rel="index" href="ix02.html" title="Index of deprecated symbols"><link rel="index" href="ix03.html" title="Index of new symbols in 2.2"><link rel="index" href="ix04.html" title="Index of new symbols in 2.4"><link rel="index" href="ix05.html" title="Index of new symbols in 2.6"><link rel="index" href="ix06.html" title="Index of new symbols in 2.8"><link rel="index" href="ix07.html" title="Index of new symbols in 2.10"><link rel="index" href="ix08.html" title="Index of new symbols in 2.12"><link rel="index" href="ix09.html" title="Index of new symbols in 2.14"><link rel="index" href="ix10.html" title="Index of new symbols in 2.16"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="glib-Sequences.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="glib-data-types.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">GLib Reference Manual</th><td><a accesskey="n" href="glib-Hash-Tables.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr><tr><td colspan="5" class="shortcuts"><nobr><a href="#id3285835" class="shortcut">Top</a>                  &#160;|&#160;                  <a href="#id3285953" class="shortcut">Description</a></nobr></td></tr></table><div class="refentry" lang="en"><a name="glib-Trash-Stacks"></a><div class="titlepage"></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><a name="id3285835"></a><span class="refentrytitle">Trash Stacks</span></h2><p>Trash Stacks &#8212; maintain a stack of unused allocated memory chunks</p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">#include &lt;glib.h&gt;                    <a class="link" href="glib-Trash-Stacks.html#GTrashStack">GTrashStack</a>;void                <a class="link" href="glib-Trash-Stacks.html#g-trash-stack-push">g_trash_stack_push</a>                  (<a class="link" href="glib-Trash-Stacks.html#GTrashStack">GTrashStack</a> **stack_p,                                                         <a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> data_p);<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a>            <a class="link" href="glib-Trash-Stacks.html#g-trash-stack-pop">g_trash_stack_pop</a>                   (<a class="link" href="glib-Trash-Stacks.html#GTrashStack">GTrashStack</a> **stack_p);<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a>            <a class="link" href="glib-Trash-Stacks.html#g-trash-stack-peek">g_trash_stack_peek</a>                  (<a class="link" href="glib-Trash-Stacks.html#GTrashStack">GTrashStack</a> **stack_p);<a class="link" href="glib-Basic-Types.html#guint">guint</a>               <a class="link" href="glib-Trash-Stacks.html#g-trash-stack-height">g_trash_stack_height</a>                (<a class="link" href="glib-Trash-Stacks.html#GTrashStack">GTrashStack</a> **stack_p);</pre></div><div class="refsect1" lang="en"><a name="id3285953"></a><h2>Description</h2><p>A <a class="link" href="glib-Trash-Stacks.html#GTrashStack"><span class="type">GTrashStack</span></a> is an efficient way to keep a stack of unused allocatedmemory chunks. Each memory chunk is required to be large enough to holda <a class="link" href="glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>. This allows the stack to be maintained without any spaceoverhead, since the stack pointers can be stored inside the memory chunks.</p><p>There is no function to create a <a class="link" href="glib-Trash-Stacks.html#GTrashStack"><span class="type">GTrashStack</span></a>. A <a class="link" href="glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> <a class="link" href="glib-Trash-Stacks.html#GTrashStack"><span class="type">GTrashStack</span></a>* is a perfectly valid empty stack.</p></div><div class="refsect1" lang="en"><a name="id3286018"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id3286028"></a><h3><a name="GTrashStack"></a>GTrashStack</h3><a class="indexterm" name="id3286040"></a><pre class="programlisting">typedef struct {  GTrashStack *next;} GTrashStack;</pre><p>Each piece of memory that is pushed onto the stackis cast to a <span class="structname">GTrashStack*</span>.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><a class="link" href="glib-Trash-Stacks.html#GTrashStack">GTrashStack</a>&#160;*<em class="structfield"><code>next</code></em>;</span></p></td><td>pointer to the previous element of the stack,gets stored in the first <code class="literal">sizeof (gpointer)</code>bytes of the element.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3286093"></a><h3><a name="g-trash-stack-push"></a>g_trash_stack_push ()</h3><a class="indexterm" name="id3286106"></a><pre class="programlisting">void                g_trash_stack_push                  (<a class="link" href="glib-Trash-Stacks.html#GTrashStack">GTrashStack</a> **stack_p,                                                         <a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> data_p);</pre><p>Pushes a piece of memory onto a <a class="link" href="glib-Trash-Stacks.html#GTrashStack"><span class="type">GTrashStack</span></a>.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>stack_p</code></em>&#160;:</span></p></td><td>a pointer to a <a class="link" href="glib-Trash-Stacks.html#GTrashStack"><span class="type">GTrashStack</span></a>.</td></tr><tr><td><p><span class="term"><em class="parameter"><code>data_p</code></em>&#160;:</span></p></td><td>the piece of memory to push on the stack.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3286191"></a><h3><a name="g-trash-stack-pop"></a>g_trash_stack_pop ()</h3><a class="indexterm" name="id3286204"></a><pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a>            g_trash_stack_pop                   (<a class="link" href="glib-Trash-Stacks.html#GTrashStack">GTrashStack</a> **stack_p);</pre><p>Pops a piece of memory off a <a class="link" href="glib-Trash-Stacks.html#GTrashStack"><span class="type">GTrashStack</span></a>.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>stack_p</code></em>&#160;:</span></p></td><td>a pointer to a <a class="link" href="glib-Trash-Stacks.html#GTrashStack"><span class="type">GTrashStack</span></a>.</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></p></td><td>the element at the top of the stack.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3286277"></a><h3><a name="g-trash-stack-peek"></a>g_trash_stack_peek ()</h3><a class="indexterm" name="id3286290"></a><pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a>            g_trash_stack_peek                  (<a class="link" href="glib-Trash-Stacks.html#GTrashStack">GTrashStack</a> **stack_p);</pre><p>Returns the element at the top of a <a class="link" href="glib-Trash-Stacks.html#GTrashStack"><span class="type">GTrashStack</span></a> which may be <a class="link" href="glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>stack_p</code></em>&#160;:</span></p></td><td>a pointer to a <a class="link" href="glib-Trash-Stacks.html#GTrashStack"><span class="type">GTrashStack</span></a>.</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></p></td><td>the element at the top of the stack.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3286374"></a><h3><a name="g-trash-stack-height"></a>g_trash_stack_height ()</h3><a class="indexterm" name="id3286387"></a><pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint">guint</a>               g_trash_stack_height                (<a class="link" href="glib-Trash-Stacks.html#GTrashStack">GTrashStack</a> **stack_p);</pre><p>Returns the height of a <a class="link" href="glib-Trash-Stacks.html#GTrashStack"><span class="type">GTrashStack</span></a>.Note that execution of this function is of O(N) complexitywhere N denotes the number of items on the stack.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>stack_p</code></em>&#160;:</span></p></td><td>a pointer to a <a class="link" href="glib-Trash-Stacks.html#GTrashStack"><span class="type">GTrashStack</span></a>.</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></p></td><td>the height of the stack.</td></tr></tbody></table></div></div></div><div class="refsect1" lang="en"><a name="id3286463"></a><div class="refsect2" lang="en"><a name="id3286464"></a></div><hr><div class="refsect2" lang="en"><a name="id3286465"></a></div></div></div></body></html>

⌨️ 快捷键说明

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