Qu'est-ce que l'utilisation de pragma code de la section et de la section de données?
Exactement ce qui va arriver sur le segment de données et le segment de texte si j'utilise le ci-dessous, deux lignes dans mon fichier de code source c?
#pragma CODE_SECTION(func1, "Sec1")
#pragma DATA_SECTION(globalvar1, "Sec2")
Le compilateur que vous utilisez?
OriginalL'auteur rashok | 2012-03-15
Vous devez vous connecter pour publier un commentaire.
Source (contient des exemples): http://hi.baidu.com/jevidyang/blog/item/6d4dc436d87e3a300b55a918.html
Remarque:
#pragma
est compilateur spécifique, de sorte que la syntaxe peut varier pour votre compilateur.La DATA_SECTION pragma alloue de l'espace pour le symbole, dans une section intitulée " nom de la section.
La syntaxe de la pragma en C pourrait être:
La syntaxe de la pragma en C++ pourrait être:
La DATA_SECTION pragma est utile si vous avez des objets de données que vous souhaitez lier dans une zone séparée de la .sev section.
La CODE_SECTION pragma alloue de l'espace pour la touche func dans une section nommée nom de la section. Le CODE_SECTION pragma est utile si vous disposez d'un code d'objets que vous souhaitez lier dans une zone séparée de la .section de texte.
La syntaxe de la pragma en C pourrait être:
La syntaxe de la pragma en C++ pourrait être:
Si je change d' peut être, vous retirez le downvote alors? Bien sûr
#pragma
est compilateur spécifique.Oui, je suppose que c'est mieux. La chose importante est de ne pas tromper quelqu'un en pensant que c'est bien définie par une norme. Même si la question d'origine est manquant, il n'y a pas de compilateur spécifique mentionné.
Votre lien de référence n'est plus disponible: hi.baidu.com/jevidyang/blog/item/6d4dc436d87e3a300b55a918.html
malheureusement, la source semble être perdu, le blog a disparu et il n'est pas indexé sur archive.org/web
OriginalL'auteur Stijn
#pragma
signifie "voici quelque chose de mise en œuvre définies par l'unique de ce compilateur". Donc ce qui va se passer dépend du compilateur que vous utilisez. Si le compilateur ne supporte pas ce pragma, le tout sera ignoré.Dans ce cas, il est assez évident, cependant.
#pragma CODE_SECTION(func1, "Sec1")
signifie: "func1 devrait être dans la mémoire de programme, dans la zone de mémoire appelée Sec1". Sec1 sera un mémoire en lecture seule endroit où le code de func1 sera alloué.#pragma DATA_SECTION(globalvar1, "Sec2")
signifie: "globalvar1 devrait être dans la mémoire de données, dans la zone de mémoire appelée Sec2". Sec2 sera en lecture/écriture à l'emplacement où la variable globalvar1 sera alloué.Était-ce une question ou une affirmation? Aucune raison pour downvote, ou avez-vous simplement envie?
OriginalL'auteur Lundin