<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Include directive</title><link>https://sourceforge.net/p/typp/wiki/Include%2520directive/</link><description>Recent changes to Include directive</description><atom:link href="https://sourceforge.net/p/typp/wiki/Include%20directive/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 07 Jan 2016 12:56:32 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/typp/wiki/Include%20directive/feed" rel="self" type="application/rss+xml"/><item><title>Include directive modified by Cyder</title><link>https://sourceforge.net/p/typp/wiki/Include%2520directive/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -17,4 +17,26 @@

 ~~~~

+Files can be guarded, to be included only once, with an include guard. TPP includes a special optimization, to detect such include guards without having to actually load the file from disk, just to ignore its contents every time it is included:
+
+~~~~
+#ifndef MY_FILE_GUARD
+// TPP Will detect "MY_FILE_GUARD", to be a guard for the current file and
+// simply skip #include directives for this file, if "MY_FILE_GUARD"
+// is still defined at that point.
+
+// The definition of the guard here is not really part of the
+// guard detection process, but required to get a self-guarding file.
+#define MY_FILE_GUARD
+
+Content...
+
+// This #endif must be the last non-whitespace thing in the file
+// and must be terminating the #ifndef block from the start
+// without any #elif or #else directive within the same block
+#endif
+~~~~
+
+
+
 s.a. [Bracket notation]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cyder</dc:creator><pubDate>Thu, 07 Jan 2016 12:56:32 -0000</pubDate><guid>https://sourceforge.net30ce6918e309ce04b57fb44d5173334f934f1efb</guid></item><item><title>Include directive modified by Cyder</title><link>https://sourceforge.net/p/typp/wiki/Include%2520directive/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -16,3 +16,5 @@
 and // Expands to [&amp;amp;&amp;amp;]

 ~~~~
+
+s.a. [Bracket notation]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cyder</dc:creator><pubDate>Thu, 07 Jan 2016 12:08:27 -0000</pubDate><guid>https://sourceforge.neta6c1199ddeb01b5c559c6a808cd942c2a132b506</guid></item><item><title>Include directive modified by Cyder</title><link>https://sourceforge.net/p/typp/wiki/Include%2520directive/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;strong&gt;Include Directive&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The c11 standard describes a &lt;code&gt;#include&lt;/code&gt; directive, that can be used in 2 different ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;#include &amp;lt;sys-include-string&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;#include "include-string"&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Boths ways of writing it perform the same action, which is looking through different paths, to file a given file.&lt;br/&gt;
The TPP frontend allows the specification of additional sys-include paths with the "-I" switch.&lt;br/&gt;
TPP comes packed with a small standard library of files with utility macros, such as &lt;code&gt;&amp;lt;iso646.h&amp;gt;&lt;/code&gt;. The path to this folder is always part of the sys-include list of paths.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;and&lt;/span&gt; &lt;span class="c1"&gt;// Expands to [and]&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;lt;iso646.h&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;and&lt;/span&gt; &lt;span class="c1"&gt;// Expands to [&amp;amp;&amp;amp;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cyder</dc:creator><pubDate>Thu, 07 Jan 2016 12:08:05 -0000</pubDate><guid>https://sourceforge.net70941c55056bc462df8ef8e644e989278bcc8448</guid></item></channel></rss>