<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Learnings on LingHui 的技术笔记</title><link>https://note.plhwiki.cn/learning/</link><description>Recent content in Learnings on LingHui 的技术笔记</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Wed, 14 Oct 2026 08:00:22 -0400</lastBuildDate><atom:link href="https://note.plhwiki.cn/learning/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://note.plhwiki.cn/learning/c++%E4%B9%8B%E7%BE%8E/</link><pubDate>Wed, 14 Oct 2026 08:00:22 -0400</pubDate><guid>https://note.plhwiki.cn/learning/c++%E4%B9%8B%E7%BE%8E/</guid><description>&lt;h1 id="dont-hurt-yourself"&gt;Don&amp;rsquo;t hurt yourself&lt;/h1&gt;
&lt;h2 id="减少函数参数"&gt;减少函数参数&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;函数参数过多，是复杂度失控的信号。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;当一个函数不断需要增加参数时，不要急着继续加参数，而应先检查：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;函数是否承担了过多职责&lt;/strong&gt;，需要拆分；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多个参数是否属于同一个概念&lt;/strong&gt;，可以封装成结构体/参数对象；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不同使用场景是否应该用不同函数、重载或模板表达&lt;/strong&gt;；&lt;/li&gt;
&lt;li&gt;只有以上方式都不合适时，才考虑增加新参数。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最终目标是：&lt;/p&gt;</description></item><item><title/><link>https://note.plhwiki.cn/learning/%E7%A8%8B%E5%BA%8F%E5%91%98%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB/</link><pubDate>Wed, 14 Oct 2026 08:00:22 -0400</pubDate><guid>https://note.plhwiki.cn/learning/%E7%A8%8B%E5%BA%8F%E5%91%98%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB/</guid><description>&lt;h1 id="目标文件"&gt;目标文件&lt;/h1&gt;
&lt;h2 id="目标文件的格式"&gt;目标文件的格式&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ELF 文件类型&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;th&gt;实例&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;可重定位文件（ET_REL）&lt;/td&gt;
&lt;td&gt;包含待链接的代码、数据和重定位信息&lt;/td&gt;
&lt;td&gt;Linux 的 &lt;code&gt;.o&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;可执行文件（ET_EXEC）&lt;/td&gt;
&lt;td&gt;可装载执行的文件类型&lt;/td&gt;
&lt;td&gt;非 PIE 的 ELF 可执行程序&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;共享目标文件（ET_DYN）&lt;/td&gt;
&lt;td&gt;用于共享库，也用于 PIE 可执行程序；能否直接运行取决于文件用途和装载要求&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.so&lt;/code&gt;、PIE 可执行程序&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;核心转储文件（ET_CORE）&lt;/td&gt;
&lt;td&gt;记录进程崩溃时的内存与执行状态&lt;/td&gt;
&lt;td&gt;&lt;code&gt;core&lt;/code&gt; 文件&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;静态库 &lt;code&gt;.a&lt;/code&gt; 通常是多个目标文件组成的归档，不是单个 ET_REL 文件。Windows 的 &lt;code&gt;.obj&lt;/code&gt;、&lt;code&gt;.exe&lt;/code&gt;、&lt;code&gt;.dll&lt;/code&gt; 仅可作用途类比，通常采用 COFF／PE 格式，不属于 ELF。&lt;/p&gt;</description></item><item><title/><link>https://note.plhwiki.cn/learning/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%93%B2%E5%AD%A6/</link><pubDate>Wed, 14 Oct 2026 08:00:22 -0400</pubDate><guid>https://note.plhwiki.cn/learning/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%93%B2%E5%AD%A6/</guid><description>&lt;h1 id="复杂性的本质"&gt;复杂性的本质&lt;/h1&gt;
&lt;h2 id="复杂性的定义"&gt;复杂性的定义&lt;/h2&gt;
&lt;p&gt;复杂性&lt;strong&gt;是指与软件系统结构有关的，使人难以理解和修改系统的所有因素。&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;难以理解代码怎么工作 （理解）&lt;/li&gt;
&lt;li&gt;难以在修bug时避免引入其他bug （修改）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;从成本的角度上看，复杂系统小的修改需要耗费大量人力物力，而简单的系统，只需要较少的精力就能实现较大的改进&lt;/p&gt;</description></item></channel></rss>