Toolchain
In diesem Modul wird eine Toolchain-Abstraktionsebene durch Makros definiert.
Zusammenfassung
Verwendung:
typedef OT_TOOL_PACKED_BEGIN struct { char mField1; union { char mField2; long mField3; } OT_TOOL_PACKED_FIELD; } OT_TOOL_PACKED_END packed_struct_t;
Makros
OT_APPLE_IGNORE_GNU_FOLDING_CONSTANT
OT_APPLE_IGNORE_GNU_FOLDING_CONSTANT __VA_ARGS__
OT_FALL_THROUGH
OT_FALL_THROUGH do \ { \ } while (false) /* fallthrough */
Unterdrückt Stürze durch Warnungen in einem bestimmten Compiler.
OT_MUST_USE_RESULT
OT_MUST_USE_RESULT
Compiler-spezifischer Hinweis, dass eine Klasse oder ein Enum verwendet werden muss, wenn dies der Rückgabewert einer Funktion ist.
OT_TOOL_PACKED_BEGIN
OT_TOOL_PACKED_BEGIN
Compiler-spezifischer Hinweis, dass eine Klasse oder ein Struct mit Byte gepackt werden muss.
OT_TOOL_PACKED_FIELD
OT_TOOL_PACKED_FIELD
Gibt dem Compiler eine verschachtelte Struktur oder Union an, die innerhalb einer mit Byte gepackten Klasse oder Struktur gepackt werden soll.
OT_TOOL_PRINTF_STYLE_FORMAT_ARG_CHECK
OT_TOOL_PRINTF_STYLE_FORMAT_ARG_CHECK
Gibt an, dass eine Funktion oder Methode printf
-Stilargumente annimmt und anhand eines Formatstrings geprüft werden soll.
Muss nach der Deklaration der Funktion/Methode eingefügt werden. Beispiel:
void MyPrintf(void *aObject, const char *aFormat, ...) OT_TOOL_PRINTF_STYLE_FORMAT_ARG_CHECK(2, 3);
Die beiden Argumentindexwerte geben den Formatstring und das erste Argument an, das gegen diesen geprüft werden soll. Sie beginnen bei Index 1 für den ersten Parameter in einer Funktion und bei Index 2 für den ersten Parameter in einer Methode.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
OT_TOOL_WEAK
OT_TOOL_WEAK
Compilerspezifischer schwacher Symbolmodifikator.
OT_UNREACHABLE_CODE
OT_UNREACHABLE_CODE CODE
Warnung zu nicht erreichbarem Code in bestimmten Toolchains unterdrücken.
OT_UNUSED_VARIABLE
OT_UNUSED_VARIABLE do \ { \ (void)(VARIABLE); \ } while (false)
Unterdrücken Sie Warnungen zu nicht verwendeten Variablen in bestimmten Toolchains.
Ressourcen
OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen finden Sie unter Ressourcen. Dort können Sie auch einen Beitrag zu unserer Dokumentation leisten.