d'abord, quelques exemples:
Vous pouvez contrôler le diagnostic:
http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas
Et à partir du même lien:
clang soutient la Microsof t Fonction "#pragma pack
" pour contrôler la disposition d'enregistrement. GCC contient également un support pour cette fonctionnalité, cependant là où MSVC et GCC sont incompatibles, clang suit la définition de MSVC. Clang prend en charge la fonctionnalité Microsoft #pragma comment(lib, "foo.lib")
pour la liaison automatique avec la bibliothèque spécifiée. Actuellement, cette fonctionnalité ne fonctionne qu'avec le lieur Visual C++. Clang prend en charge la fonctionnalité Microsoft #pragma comment(linker, "/flag:foo")
pour ajouter des indicateurs de liens aux fichiers objet COFF. L'utilisateur est responsable de s'assurer que l'éditeur de liens comprend les indicateurs.
Les deuxième et troisième de cette liste ne sera pas applicable à votre code iOS, cependant.
Wikipedia [link] dit que clang supporte #pragma once
, aussi.
Et enfin, voici un lien vers le clang API documentation pour le code de gestion pragma
. Vous pouvez naviguer à partir de là pour voir tout le reste. En particulier, TokenKinds.def décrit tous les jetons acceptés, on peut donc supposer qu'il est complet:
#pragma unused
#pragma GCC visibility [push/pop]
#pragma pack [value/show/push/pop/etc/etc/etc]
#pragma clang __debug parser_crash
#pragma clang __debug captured
#pragma ms_struct [on/off]
#pragma align [native/natural/mac68k/power/reset]
#pragma weak [identifier]
#pragma weak [identifier = identifier] // alias
#pragma redefine_extname [identifier identifier]
#pragma STDC FP_CONTRACT
#pragma OPENCL EXTENSION
#pragma omp [...]
#pragma detect_mismatch
#pragma comment
Le code d'analyse syntaxique, trouvé dans ParsePragma.cpp
, semble indiquer que tous d'entre eux sont mis en œuvre, même si le frontal accepte eux, cependant.
Serait drôle si quelqu'un est venu ici et a publié 500 mots-clés non documentés qui ont effectivement travaillé :) – doge
Vous pouvez faire des choses comme '// FIXME: du texte que vous voulez» et «// TODO: quelque chose à faire» '# pragma une fois'' – Popeye
Oui, il y en a d'autres, comme '#pragma clang diagnostic ...' – Wain