• Navigation überspringen
  • Zur Navigation
  • Zum Seitenende
Organisationsmenü öffnen Organisationsmenü schließen
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
  • FAUZur zentralen FAU Website
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Suche öffnen
  • English
  • Campo
  • StudOn
  • FAUdir
  • Stellenangebote
  • Lageplan
  • Hilfe im Notfall
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
Menu Menu schließen
  • Lehrstuhl
    • Team
    • Aktuelles
    • Kontakt und Anfahrt
    • Leitbild
    • 50-jähriges Jubiläum
    Portal Lehrstuhl
  • Forschung
    • Forschungsbereiche
      • Betriebssysteme
      • Confidential Computing
      • Eingebettete Systemsoftware
      • Verteilte Systeme
    • Projekte
      • AIMBOS
      • BALu
      • BFT2Chain
      • DOSS
      • Mirador
      • NEON
      • PAVE
      • ResPECT
      • Watwa
    • Projektkampagnen
      • maRE
    • Seminar
      • Systemsoftware
    Portal Forschung
  • Publikationen
  • Lehre
    • Sommersemester 2025
      • Applied Software Architecture
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssystemtechnik
      • Projekt angewandte Systemsoftwaretechnik
      • System-Level Programming
      • Systemnahe Programmierung in C
      • Systemprogrammierung 1
      • Verteilte Systeme
    • Wintersemester 2024/25
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Systemprogrammierung 2
      • Verlässliche Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Extern

Extern

Bereichsnavigation: Lehre
  • Betriebssysteme
    • Vorlesung
      • Folien
    • Übung
      • Seminar
      • Aufgaben
      • Aufgabe 0: C++ Streams
        • Aufgabe 1: Ein-/Ausgabe
          • Aufgabe 2: Unterbrechungen
            • Aufgabe 3: Pro-/Epilog
              • Aufgabe 4: Kontextwechsel
                • Aufgabe 5: Zeitscheiben
                  • Aufgabe 6: Synchronisation
                    • Aufgabe 7: Anwendung
                      • Assembler Crashkurs
                        • C++ Crashkurs
                          • Entwicklungsumgebung
                            • FAQ
                              • Ruhmeshalle
                              • Evaluation

                              Aufgabe 1: Ein-/Ausgabe

                              • debug
                              Macros | Functions
                              assert.h File Reference

                              Contains several macros usable for making assertions. More...

                              + This graph shows which files directly or indirectly include this file:

                              Macros

                              #define STRINGIFY(S)   #S
                               Converts a macro parameter into a string. More...
                               
                              #define assert_size(TYPE, SIZE)    static_assert(sizeof(TYPE) == (SIZE), "Wrong size for " STRINGIFY(TYPE))
                               Statically ensure (at compile time) that a data type (or variable) has the expected size. More...
                               
                              #define assert(EXP)
                               Ensure (at execution time) an expression evaluates to true, print an error message and stop the CPU otherwise. More...
                               

                              Functions

                              void assertion_failed (const char *exp, const char *func, const char *file, int line)
                               Handles a failed assertion. More...
                               

                              Detailed Description

                              Contains several macros usable for making assertions.

                              Depending on the type of assertion (either static or at runtime), a failing assertion will trigger an error. For static assertion, this error will be shown at compile time and abort compilation. Runtime assertions will trigger a message containing details about the error occurred and will make the CPU die.

                              Macro Definition Documentation

                              #define STRINGIFY (   S)    #S

                              Converts a macro parameter into a string.

                              Parameters
                              SExpression to be converted
                              Returns
                              stringified version of S
                              #define assert_size (   TYPE,
                                SIZE 
                              )     static_assert(sizeof(TYPE) == (SIZE), "Wrong size for " STRINGIFY(TYPE))

                              Statically ensure (at compile time) that a data type (or variable) has the expected size.

                              Parameters
                              TYPEThe type to be checked
                              SIZEExpected size in bytes
                              #define assert (   EXP)
                              Value:
                              do { \
                              if (__builtin_expect(!(EXP), 0)) { \
                              assertion_failed(STRINGIFY(EXP), __func__, __FILE__, __LINE__); \
                              } \
                              } while (false)
                              STRINGIFY
                              #define STRINGIFY(S)
                              Converts a macro parameter into a string.
                              Definition: assert.h:18

                              Ensure (at execution time) an expression evaluates to true, print an error message and stop the CPU otherwise.

                              Parameters
                              EXPThe expression to be checked

                              Function Documentation

                              void assertion_failed ( const char *  exp,
                              const char *  func,
                              const char *  file,
                              int  line 
                              )

                              Handles a failed assertion.

                              This function will print a message containing further information about the failed assertion and stops the current CPU permanently.

                              Note
                              This function should never be called directly, but only via the macro assert.
                              Todo:
                              Implement Remainder of Method (output & CPU stopping)
                              Parameters
                              expExpression that did not hold
                              funcName of the function in which the assertion failed
                              fileName of the file in which the assertion failed
                              lineLine in which the assertion failed
                              Friedrich-Alexander-Universität
                              Erlangen-Nürnberg

                              Schlossplatz 4
                              91054 Erlangen
                              • Impressum
                              • Datenschutz
                              • Barrierefreiheit
                              • Facebook
                              • RSS Feed
                              • Xing
                              Nach oben