Partager via


function (C/C++)

Spécifie que les appels aux fonctions spécifiées dans la liste d'arguments du pragma for.

#pragma function( function1 [, function2, ...] )

Notes

Si vous utilisez le pragma d' intrinsèque (ou /Oi) pour demander au compilateur de générer des fonctions intrinsèques (fonctions intrinsèques sont générées comme code incorporé, et non comme appels de fonction), vous pouvez utiliser le pragma de fonction pour forcer explicitement un appel de fonction.Une fois un pragma de fonction est vu, il soit appliqué à la première définition de fonction contenant une fonction intrinsèque spécifiée.L'effet continue à la fin de le fichier source ou à l'apparence d'un pragma d' intrinsèque spécifiant la même fonction intrinsèque.Le pragma de fonction peut être utilisé uniquement en dehors d'une fonction - au niveau global.

Pour les listes des fonctions qui ont les formes intrinsèques, consultez l' intrinsèque #pragma.

Exemple

// pragma_directive_function.cpp
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// use intrinsic forms of memset and strlen
#pragma intrinsic(memset, strlen)

// Find first word break in string, and set remaining
// chars in string to specified char value.
char *set_str_after_word(char *string, char ch) {
   int i;
   int len = strlen(string);  /* NOTE: uses intrinsic for strlen */

   for(i = 0; i < len; i++) {
      if (isspace(*(string + i))) 
         break;
   }

   for(; i < len; i++) 
      *(string + i) = ch;
   
   return string;
}

// do not use strlen intrinsic
#pragma function(strlen)

// Set all chars in string to specified char value.
char *set_str(char *string, char ch) {
   // Uses intrinsic for memset, but calls strlen library function
   return (char *) memset(string, ch, strlen(string));
}

int main() {
   char *str = (char *) malloc(20 * sizeof(char));

   strcpy_s(str, sizeof("Now is the time"), "Now is the time");
   printf("str is '%s'\n", set_str_after_word(str, '*'));
   printf("str is '%s'\n", set_str(str, '!'));
}
  

Voir aussi

Référence

Directives pragma et le mot clé de __Pragma