<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>C&#43;&#43; - 系列 - Hugo笔记</title>
        <link>http://lovelycabin.dpdns.org/blog/series/c&#43;&#43;/</link>
        <description>C&#43;&#43; - 系列 - Hugo笔记</description>
        <generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>ein_crimson@163.com (lilac)</managingEditor>
            <webMaster>ein_crimson@163.com (lilac)</webMaster><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Sat, 23 Sep 2023 20:21:45 &#43;0800</lastBuildDate><atom:link href="http://lovelycabin.dpdns.org/blog/series/c&#43;&#43;/" rel="self" type="application/rss+xml" /><item>
    <title>C&#43;&#43; 开发实践</title>
    <link>http://lovelycabin.dpdns.org/blog/posts/series/cpp/</link>
    <pubDate>Sun, 17 Sep 2023 10:57:44 &#43;0800</pubDate><author>
        <name>lilac</name>
    </author><guid>http://lovelycabin.dpdns.org/blog/posts/series/cpp/</guid>
    <description><![CDATA[]]></description>
</item><item>
    <title>C&#43;&#43; 特性</title>
    <link>http://lovelycabin.dpdns.org/blog/20230917/1694919465/</link>
    <pubDate>Sun, 17 Sep 2023 10:57:45 &#43;0800</pubDate><author>
        <name>lilac</name>
    </author><guid>http://lovelycabin.dpdns.org/blog/20230917/1694919465/</guid>
    <description><![CDATA[<h2 id="基础汇总" class="headerLink">
    <a href="#%e5%9f%ba%e7%a1%80%e6%b1%87%e6%80%bb" class="header-mark"></a>1 基础汇总</h2><ol>
<li>
<p>代码编译</p>
<ul>
<li>预编译：对源代码进行宏替换，编译头文件等，输出 <code>.i</code> 文件</li>
<li>编译：将 <code>.i</code> 文件代码转换为汇编语言文件，进行词法/语义分析，错误检查等，生成 <code>.s</code> 文件</li>
<li>汇编：汇编器将汇编语言文件 <code>.s</code> 翻译成机器语言，生成 <code>.o</code> 文件</li>
<li>链接：链接目标文件和库文件，生成可执行文件 <code>exe</code></li>
</ul>
</li>
<li>
<p>内存分区</p>]]></description>
</item><item>
    <title>C&#43;&#43; 标准库</title>
    <link>http://lovelycabin.dpdns.org/blog/20230918/1695022665/</link>
    <pubDate>Mon, 18 Sep 2023 15:37:45 &#43;0800</pubDate><author>
        <name>lilac</name>
    </author><guid>http://lovelycabin.dpdns.org/blog/20230918/1695022665/</guid>
    <description><![CDATA[<p>记录常用的 c++特性语法。</p>
<h2 id="关键字" class="headerLink">
    <a href="#%e5%85%b3%e9%94%ae%e5%ad%97" class="header-mark"></a>1 关键字</h2><h3 id="constexpr" class="headerLink">
    <a href="#constexpr" class="header-mark"></a>1.1 constexpr</h3><p>在 C++11时期，主要用于指定一个变量或函数是编译时常量。对于条件语句，仍然会在运行时判断，而在 C++17时获得了改变：<code>if constexpr</code> 被引入，它允许在编译期进行条件判断。</p>]]></description>
</item><item>
    <title>C&#43;&#43; 学习补充</title>
    <link>http://lovelycabin.dpdns.org/blog/20230921/1695259365/</link>
    <pubDate>Thu, 21 Sep 2023 09:22:45 &#43;0800</pubDate><author>
        <name>lilac</name>
    </author><guid>http://lovelycabin.dpdns.org/blog/20230921/1695259365/</guid>
    <description><![CDATA[<p>前面已有一些篇章，将常使用到的特性进行了简单的描述，这里针对 C++17以上的新特性进行补充，以及对一些案例做较为详细的解析。</p>
<h2 id="c11-新特性" class="headerLink">
    <a href="#c11-%e6%96%b0%e7%89%b9%e6%80%a7" class="header-mark"></a>16 C++11 新特性</h2><p>这是一次大的版本更新，再次拔高了C++的生态，由于特性太多，记不常用特性。</p>]]></description>
</item><item>
    <title>C&#43;&#43; 编程优化小结</title>
    <link>http://lovelycabin.dpdns.org/blog/20230923/1695471705/</link>
    <pubDate>Sat, 23 Sep 2023 20:21:45 &#43;0800</pubDate><author>
        <name>lilac</name>
    </author><guid>http://lovelycabin.dpdns.org/blog/20230923/1695471705/</guid>
    <description><![CDATA[<p><strong>帕累托法则</strong>提示我们高效的编码要聚焦在会产生性能瓶颈的20%的地方，而非明显产生性能瓶颈的位置，需要优先考虑可维护性。</p>
<h2 id="数据结构设计" class="headerLink">
    <a href="#%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84%e8%ae%be%e8%ae%a1" class="header-mark"></a>22 数据结构设计</h2><ol>
<li>优先采用四字节对齐</li>
<li>连续访问的数据连续存放，提高 D-Cache 命中率</li>
<li>减少内存块的数量，避免内存浪费。由于内存有最小分配粒度（如 4KB 对齐），且会附加一些元数据（内存头/尾）跟踪内存块大小、使用情况等，实际分配的内存会大于申请内存</li>
<li>避免大数据结构在全局赋值，由于会占用数据段，伴随整个程序的生命周期，不可取。</li>
</ol>
<h2 id="高效内存管理" class="headerLink">
    <a href="#%e9%ab%98%e6%95%88%e5%86%85%e5%ad%98%e7%ae%a1%e7%90%86" class="header-mark"></a>23 高效内存管理</h2><p>动态内存，指在函数调用过程中频繁释放堆上内存，触发堆上内存管理器的内存分配方式。</p>]]></description>
</item></channel>
</rss>
