Include Directive
The c11 standard describes a #include
directive, that can be used in 2 different ways:
#include <sys-include-string>
#include "include-string"
Boths ways of writing it perform the same action, which is looking through different paths, to file a given file.
The TPP frontend allows the specification of additional sys-include paths with the "-I" switch.
TPP comes packed with a small standard library of files with utility macros, such as <iso646.h>
. The path to this folder is always part of the sys-include list of paths.
and // Expands to [and]
#include <iso646.h>
and // Expands to [&&]
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]
Wiki: Bracket notation
Wiki: Has include macro
Wiki: Include next directive
Wiki: Pragma once