<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>USTC C Programming Language I</title>
    <description>Main page for USTC C Programming Language I</description>
    <link>https://cs011164.github.io/</link>
    <atom:link href="https://cs011164.github.io/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Tue, 13 Sep 2016 09:37:35 +0000</pubDate>
    <lastBuildDate>Tue, 13 Sep 2016 09:37:35 +0000</lastBuildDate>
    <generator>Jekyll v3.2.1</generator>
    
      <item>
        <title>Promise to be God</title>
        <description>&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;打破规则，或者成为规则本身，负担世上一切因果&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/magica.png&quot; alt=&quot;magica&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;section&quot;&gt;表象之世界&lt;/h2&gt;

&lt;p&gt;计算机领域的发展，给我们带来了很多进步，但是同时由于抽象和分层方法的大量使用，使得用户接触到的东西只是某种表象－－这不是真实的世界，但是足以满足人们的需求。如果你想一窥表象下面的真相，就需要知识的力量，需要理解原理。在原理的指导下你会看到常人难以触及的真相，可以逾越和更改最基本的规则，可以。&lt;/p&gt;

&lt;p&gt;下面允许我邀请你成为Windows规则中的一员。了解原理后你只需要最基本的操作就能改写原有规则，无需更改系统的任何配置。&lt;/p&gt;

&lt;h3 id=&quot;section-1&quot;&gt;没有文件名的文件&lt;/h3&gt;

&lt;p&gt;如果你试图不输入文件名，会被系统拒绝：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/magica/1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;请你突破这个限制：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/magica/2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;section-2&quot;&gt;空格作为前缀的文件夹&lt;/h3&gt;

&lt;p&gt;在文件夹两侧输入空格是徒劳的：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/magica/3.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;但是你可以无视它，可以在前面保留空格：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/magica/4.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;section-3&quot;&gt;空格作为后缀的文件夹（难）&lt;/h3&gt;

&lt;p&gt;确实可以做到，看上去就像是有很多同名文件夹。你可以试一试：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/magica/5.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;另外这些文件夹被操作时会有很多奇异的效果（想想为什么）：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/magica/6.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/magica/7.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;section-4&quot;&gt;运行任意拓展名的程序（稍难）&lt;/h3&gt;

&lt;p&gt;将&lt;code class=&quot;highlighter-rouge&quot;&gt;cmd.exe&lt;/code&gt;从系统&lt;code class=&quot;highlighter-rouge&quot;&gt;system32&lt;/code&gt;目录复制出来，更改拓展名为&lt;code class=&quot;highlighter-rouge&quot;&gt;jpg&lt;/code&gt;。试图“运行”它会显示无效图片（因为这个显然不是图片）：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/magica/9.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;但是请想办法让它作为程序跑起来：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/magica/8.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;prn&quot;&gt;试图创建一个文件名是’prn’的文件（稍难）&lt;/h3&gt;

&lt;p&gt;也许你会惊讶会发生这样的事情：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/magica/10.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;请改变这个结局。&lt;/p&gt;

&lt;h2 id=&quot;section-5&quot;&gt;&lt;em&gt;提示将在未来一段时间后陆续公布&lt;/em&gt;&lt;/h2&gt;

</description>
        <pubDate>Sat, 10 Sep 2016 19:34:26 +0000</pubDate>
        <link>https://cs011164.github.io/challenge1/</link>
        <guid isPermaLink="true">https://cs011164.github.io/challenge1/</guid>
        
        <category>Challenge</category>
        
        <category>Hacking</category>
        
        <category>Principle</category>
        
        
        <category>intro</category>
        
      </item>
    
      <item>
        <title>Programming on the Earth</title>
        <description>&lt;p&gt;##&lt;/p&gt;

&lt;p&gt;欢迎来到程序设计I。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/Terminal.png&quot; alt=&quot;终端图片&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/exec.png&quot; alt=&quot;程序&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/doc.png&quot; alt=&quot;文件&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 03 Sep 2016 08:32:26 +0000</pubDate>
        <link>https://cs011164.github.io/realworld/</link>
        <guid isPermaLink="true">https://cs011164.github.io/realworld/</guid>
        
        <category>programming</category>
        
        <category>C language</category>
        
        <category>practice</category>
        
        
        <category>practice</category>
        
      </item>
    
      <item>
        <title>IO</title>
        <description>&lt;h2 id=&quot;io&quot;&gt;此篇将陈述I/O系统&lt;/h2&gt;

&lt;p&gt;欢迎来到程序设计I。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/Terminal.png&quot; alt=&quot;终端图片&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/exec.png&quot; alt=&quot;程序&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/doc.png&quot; alt=&quot;文件&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 03 Sep 2016 08:32:26 +0000</pubDate>
        <link>https://cs011164.github.io/io/</link>
        <guid isPermaLink="true">https://cs011164.github.io/io/</guid>
        
        <category>programming</category>
        
        <category>C language</category>
        
        <category>practice</category>
        
        
        <category>practice</category>
        
      </item>
    
      <item>
        <title>Why not coding?</title>
        <description>&lt;h2 id=&quot;section&quot;&gt;编程指导&lt;/h2&gt; &lt;h3 id=&quot;section-1&quot;&gt;开发环境&lt;/h3&gt; &lt;p&gt;如果你对计算机的基本知识不了解，推荐先看看&lt;a href=&quot;http://suquark.github.io/lecture/2016/07/25/intro2realcs.html&quot;&gt;入门－真实的 Computer Science &amp;amp; Technology&lt;/a&gt;。日后还会有一个更加简洁明了的版本。&lt;/p&gt; &lt;p&gt;编程的基本流程依赖于三个东西：编辑器、编译器、调试器。&lt;/p&gt; &lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;编辑器&lt;/code&gt;用于&lt;code class=&quot;highlighter-rouge&quot;&gt;写代码&lt;/code&gt;，显然专业用来写代码的效率更高，所以我们一般不会用 Microsoft Word 写代码。&lt;/p&gt; &lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;编译器&lt;/code&gt;（狭义）将&lt;code class=&quot;highlighter-rouge&quot;&gt;源代码变成二进制代码&lt;/code&gt;，实现编程的目的。&lt;/p&gt; &lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;调试器&lt;/code&gt;帮助我们&lt;code class=&quot;highlighter-rouge&quot;&gt;找到错误&lt;/code&gt;，或者&lt;code class=&quot;highlighter-rouge&quot;&gt;理解真正的运行机制&lt;/code&gt;。比较简单的代码可能用不到。&lt;/p&gt; &lt;p&gt;如果把三者或者更多功能结合起来，就形成了所谓的&lt;code class=&quot;highlighter-rouge&quot;&gt;IDE&lt;/code&gt; (集成开发环境)，诸如Visual Studio之类。IDE显然不是必须的，但是对新手相对友好，但是同时也遮盖了编程的一些实质（新手往往把IDE和编译器这些混为一谈）。&lt;/p&gt; &lt;p&gt;下面会根据个人经验推荐一批编程相关软件，读者可以根据自己喜好选择。&lt;/p&gt; &lt;h3 id=&quot;section-2&quot;&gt;字体&lt;/h3&gt; &lt;p&gt;对于编程，最好使用所谓“等宽字体”，也就是符号、字母宽度相同，这样程序易于对齐，便于检查。另外你的字体要能够区分“0oO”以及“iIl1L”&lt;/p&gt; &lt;p&gt;Windows下, 大多数编辑器默认字体用的是“新宋体”，非常难看。建议改成Consola。如果你自己会下载安装其他等宽字体更好。&lt;/p&gt; &lt;p&gt;Linux下可以自行Google字体方案，如果你对字体不满意。Mac OSX基本没有字体问题。&lt;/p&gt; &lt;h3 id=&quot;section-3&quot;&gt;代码风格&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;使用空格而不是tab，tab虽然间隔较大，但是在“等宽”等方面往往造成非常困扰的问题。&lt;/li&gt; &lt;li&gt;很多IDE和用于编程的编辑器默认将Tab转换成4个空格，即使不默认也会有相应的调整选项。&lt;/li&gt; &lt;li&gt;两种参考风格：&lt;/li&gt; &lt;/ul&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-c&quot; data-lang=&quot;c&quot;&gt;&lt;span class=&quot;cm&quot;&gt;/* 特点：括号整齐，缩进明显 */&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;stdio.h&amp;gt; #define BOUND 100 &lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;BOUND&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span...</description>
        <pubDate>Thu, 01 Sep 2016 19:34:26 +0000</pubDate>
        <link>https://cs011164.github.io/coding/</link>
        <guid isPermaLink="true">https://cs011164.github.io/coding/</guid>
        
        <category>Coding</category>
        
        <category>C language</category>
        
        
        <category>intro</category>
        
      </item>
    
      <item>
        <title>Make it universal</title>
        <description>&lt;h2 id=&quot;section&quot;&gt;命名&lt;/h2&gt;

&lt;p&gt;C++式命名 set_user_clock&lt;/p&gt;

&lt;p&gt;Java 式命名 setUserClock&lt;/p&gt;

&lt;p&gt;Python 类定义命名 SetUserClock&lt;/p&gt;

&lt;h2 id=&quot;section-1&quot;&gt;常见缩写（待补充）&lt;/h2&gt;

&lt;p&gt;Process/Proc/ps 进程&lt;/p&gt;

&lt;p&gt;Thread/td 线程&lt;/p&gt;

&lt;p&gt;RegExp/Regex/Re 正则表达式&lt;/p&gt;

&lt;p&gt;random/rand 随机&lt;/p&gt;

&lt;p&gt;execute/exec 执行&lt;/p&gt;

&lt;p&gt;evaluate/eval 计算表达式&lt;/p&gt;

&lt;p&gt;zero/Z 零&lt;/p&gt;

&lt;p&gt;non-zero/NZ 非零&lt;/p&gt;

&lt;p&gt;define/def 定义&lt;/p&gt;

&lt;p&gt;allocate/alloc 分配&lt;/p&gt;

&lt;p&gt;reallocate/realloc 再分配&lt;/p&gt;

&lt;p&gt;system/sys 系统&lt;/p&gt;

&lt;p&gt;clock/clk 钟&lt;/p&gt;

&lt;p&gt;argument/arg 命令参数 （argc 命令计数 argv 命令向量）&lt;/p&gt;

&lt;p&gt;parameter/param （函数）参数&lt;/p&gt;

&lt;p&gt;user/usr 用户&lt;/p&gt;

&lt;p&gt;binary/bin 可执行程序目录&lt;/p&gt;

&lt;p&gt;string/str 字符串&lt;/p&gt;

&lt;p&gt;to/2 转换（str2int）&lt;/p&gt;

&lt;p&gt;void/None/null/nil/nothing 空／不存在／默认&lt;/p&gt;

&lt;p&gt;directory/dir 目录&lt;/p&gt;

&lt;p&gt;dictionary/dict 字典&lt;/p&gt;

&lt;p&gt;assembly/asm 汇编&lt;/p&gt;

&lt;p&gt;context／ctx 上下文／执行环境&lt;/p&gt;

&lt;p&gt;environment／env 环境（变量）&lt;/p&gt;

&lt;p&gt;pointer/ptr／p 指针&lt;/p&gt;

&lt;p&gt;add/sub/mul/div 加减乘除&lt;/p&gt;

&lt;p&gt;standard/std 标准&lt;/p&gt;

&lt;p&gt;library／lib 库（stdlib 标准库）&lt;/p&gt;

&lt;p&gt;io 输入输出（stdio 标准输入输出）&lt;/p&gt;

&lt;p&gt;previos/prev 先前的&lt;/p&gt;

&lt;p&gt;vector/c向量&lt;/p&gt;

&lt;p&gt;file/f 文件（广义）&lt;/p&gt;

&lt;p&gt;file description/fd 文件描述符&lt;/p&gt;

&lt;p&gt;temporary/temp/tmp 临时的&lt;/p&gt;

&lt;p&gt;cmp/diff 比较&lt;/p&gt;

&lt;p&gt;format/fmt/f 格式 （printf 格式化输出）&lt;/p&gt;

</description>
        <pubDate>Thu, 01 Sep 2016 16:54:17 +0000</pubDate>
        <link>https://cs011164.github.io/naming/</link>
        <guid isPermaLink="true">https://cs011164.github.io/naming/</guid>
        
        <category>Naming</category>
        
        
        <category>intro</category>
        
      </item>
    
      <item>
        <title>Welcome</title>
        <description>&lt;h2 id=&quot;welcome-to-011164-c-program-design&quot;&gt;Welcome to 011164 C Program Design&lt;/h2&gt;

&lt;p&gt;欢迎来到程序设计I。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://suquark.github.io/lecture/2016/07/25/intro2realcs.html&quot;&gt;入门－真实的 Computer Science &amp;amp; Technology&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;section&quot;&gt;为编程准备软件&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/coding&quot;&gt;参见这里&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;在这里你将学习C的有关知识&lt;/p&gt;

</description>
        <pubDate>Thu, 01 Sep 2016 14:32:26 +0000</pubDate>
        <link>https://cs011164.github.io/intro/</link>
        <guid isPermaLink="true">https://cs011164.github.io/intro/</guid>
        
        <category>Welcome</category>
        
        <category>C language</category>
        
        
        <category>intro</category>
        
      </item>
    
      <item>
        <title>Welcome</title>
        <description>&lt;h2 id=&quot;welcome-to-011164-c-program-design&quot;&gt;Welcome to 011164 C Program Design&lt;/h2&gt;

&lt;p&gt;欢迎来到程序设计I。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://suquark.github.io/lecture/2016/07/25/intro2realcs.html&quot;&gt;入门－真实的 Computer Science &amp;amp; Technology&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;section&quot;&gt;为编程准备软件&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/coding&quot;&gt;参见这里&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;在这里你将学习C的有关知识&lt;/p&gt;

</description>
        <pubDate>Thu, 01 Sep 2016 14:32:26 +0000</pubDate>
        <link>https://cs011164.github.io/welcome/</link>
        <guid isPermaLink="true">https://cs011164.github.io/welcome/</guid>
        
        <category>Welcome</category>
        
        <category>C language</category>
        
        
        <category>intro</category>
        
      </item>
    
  </channel>
</rss>
