<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Macros on P01NT</title><link>https://outofsrvc.github.io/en/tags/macros/</link><description>Recent content in Macros on P01NT</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 13 Aug 2026 10:00:00 +0300</lastBuildDate><atom:link href="https://outofsrvc.github.io/en/tags/macros/index.xml" rel="self" type="application/rss+xml"/><item><title>The Preprocessor</title><link>https://outofsrvc.github.io/en/cworkshop/preprocessor/</link><pubDate>Thu, 13 Aug 2026 10:00:00 +0300</pubDate><guid>https://outofsrvc.github.io/en/cworkshop/preprocessor/</guid><description>&lt;p>Bismillah.&lt;/p>
&lt;p>After this series of articles we have completed the fundamentals of C — and next, God willing, comes the Malware Development series.&lt;/p>
&lt;p>In this article we cover the &lt;strong>directives&lt;/strong> of the preprocessor — the &lt;code>#&lt;/code> sign followed by reserved words that the preprocessor understands, substituted before compilation.&lt;/p>
&lt;blockquote>
&lt;p>A recap of the compilation stages (covered in the first article) — in isolated form:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gcc -E file.c -o file.i &lt;span class="c1"># 1. Preprocessor&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gcc -S file.i -o file.s &lt;span class="c1"># 2. Compiler&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gcc -c file.s -o file.o &lt;span class="c1"># 3. Assembler&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gcc file.o -o file &lt;span class="c1"># 4. Linker&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/blockquote>
&lt;h2 id="1-inclusion-directives">1. Inclusion Directives&lt;/h2>
&lt;h3 id="include">&lt;code>#include&lt;/code>&lt;/h3>
&lt;p>It enables restructuring: splitting a large program into multiple files, each responsible for a specific function:&lt;/p></description></item></channel></rss>