Zum Inhalt springen

Include

aus Wikipedia, der freien Enzyklopädie

Include ({{#invoke:Vorlage:lang|full|CODE=en|SCRIPTING=Latn|SERVICE=englisch}}, einschließen, latein. includere, einschließen, einsperren, anbringen, begrenzen), auch Include Statement genannt, ist in der Programmierung eine im Quelltext eines Computerprogramms enthaltene Anweisung an den Compiler bzw. dessen Präprozessor, einen als Parameter namentlich spezifizierten Codeteil im bearbeiteten Quellcode einzufügen. Dabei wird in dem für die Weiterverarbeitung, insbesondere zum Übersetzen temporär erzeugten Programmcode anstelle der Include-Anweisung der Inhalt der includierten Elemente eingesetzt, die originären plus alle eingefügten Textteile bilden also den eigentlichen Programmcode. Dagegen bleibt der ursprüngliche Quelltext unverändert, d. h., er enthält nur das/die Include-Statement(s).

Die einzufügenden Teile sind meist Datendeklarationen oder Routinen bzw. Fragmente davon. Sie wurden geschaffen und bereitgestellt, um in mehreren Programmen in identischer Form benutzt zu werden, im Wesentlichen um in den Programm-Quelltexten Redundanzen zu vermeiden. Das Anwenden der Include-Technik entspricht damit teilweise den Prinzipien der modularen Programmierung: Jedes Programmdetail existiert nur einmalig, im Wartungsfall muss nur an einer Stelle aktiv modifizierend eingegriffen werden, beim Testen kann (außer bei der ersten Benutzung) auf hohe Testabdeckung für den eingefügten Code meist verzichtet werden. Zusätzlich sind allerdings Kompilierungen und ggf. weitere Implementierungsmaßnahmen (wie Testen) für alle Programme erforderlich, in denen das geänderte Element verwendet wird.

Abgrenzung: ‚Include‘ ist das Einfügen von Programmtext im Rahmen der Programmierung. Dagegen ist ‚Import(ieren)‘ das Übernehmen/Einfügen fachlich-betrieblicher Daten im Betrieb eines Programms, neben dem ‚Export(ieren)‘ zum Begriff Datenaustausch gehörend.

Andere Anwendungsmöglichkeiten

Außerhalb der Programmierung werden Include-Kommandos auch in anderen Zusammenhängen benutzt, zum Beispiel:

Unterschiede je nach Programmiersprache

Je nach Programmiersprache, zum Teil auch sprachversionsabhängig, können Include-Anweisungen unterschiedlich bezeichnet werden, eine unterschiedliche Syntax aufweisen, optional weitere Parameter enthalten (die bei der Umsetzung der Include-Anweisung berücksichtigt werden – wie zum Beispiel das Einfügen aus explizit definierbaren Bibliotheken, das Ersetzen von Textelementen), oder sie sind nur in bestimmten Programmabschnitten gültig. Siehe Beispiele.

  • C oder C++: #include; Standard-Bibliothek oder individuelle Include-Datei zuweisbar; Parameter = ‚header.h‘.<ref>Uni Halle <templatestyles src="Webarchiv/styles.css" />{{#if:20121120001432
      | {{#ifeq: 20121120001432 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Archivlink | {{#invoke:WLink|getEscapedTitle|Archivlink}} | {{#invoke:Webarchiv|getdomain|http://www2.informatik.uni-halle.de/lehre/c/c_includ.html}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20121120001432}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Archivlink | {{#invoke:WLink|getEscapedTitle|Archivlink}} | {{#invoke:Webarchiv|getdomain|http://www2.informatik.uni-halle.de/lehre/c/c_includ.html}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2018-04-15 22:40:31 InternetArchiveBot | 2018-04-15 22:40:31 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20121120001432}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: Archivlink | {{#invoke:WLink|getEscapedTitle|Archivlink}} | {{#invoke:Webarchiv|getdomain|http://www2.informatik.uni-halle.de/lehre/c/c_includ.html}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2018-04-15 22:40:31 InternetArchiveBot | 2018-04-15 22:40:31 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Archivlink | {{#invoke:WLink|getEscapedTitle|Archivlink}} | {{#invoke:Webarchiv|getdomain|http://www2.informatik.uni-halle.de/lehre/c/c_includ.html}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2018-04-15 22:40:31 InternetArchiveBot | 2018-04-15 22:40:31 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: Archivlink | {{#invoke:WLink|getEscapedTitle|Archivlink}} | {{#invoke:Webarchiv|getdomain|http://www2.informatik.uni-halle.de/lehre/c/c_includ.html}} }} (Memento{{#if: {{#if: 2018-04-15 22:40:31 InternetArchiveBot | 2018-04-15 22:40:31 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Archivlink | {{#invoke:WLink|getEscapedTitle|Archivlink}} | {{#invoke:Webarchiv|getdomain|http://www2.informatik.uni-halle.de/lehre/c/c_includ.html}} }}  
                 }}}}}}}}{{#if:2018-04-15 22:40:31 InternetArchiveBot
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20121120001432|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://www2.informatik.uni-halle.de/lehre/c/c_includ.html}}
    || {{#if:  || }}
  }}{{#if: Archivlink
    | {{#if: {{#invoke:WLink|isBracketedLink|Archivlink}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://www2.informatik.uni-halle.de/lehre/c/c_includ.html%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www2.informatik.uni-halle.de/lehre/c/c_includ.html%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://www2.informatik.uni-halle.de/lehre/c/c_includ.html }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }} Präprozessor / include</ref>
  • Cobol: Kommando = Include oder copy; in der Data- oder der Procedure Division. Einzufügende Objekte werden auch Copy-Element, Copystrecke, Copybook oder auch (umgangssprachlich) "Copy" oder "Include" genannt. Optional können Texte durch andere ersetzt werden (Replace-Parameter).
  • Assemblersprache: Include-Funktionen werden oft als Makro umgesetzt. Welche Funktionalität dabei möglich ist, zum Beispiel das Umbenennen von Variablennamen, hängt von der Implementierung des Makros ab.

Weblinks

Einzelnachweise

<references />