Condividi tramite


function (C/C++)

Specifica che le chiamate alle funzioni specificate nell'elenco di argomenti del pragma vengono generate.

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

Note

Se si utilizzano funzione intrinseca pragma (o /Oi) per indicare al compilatore di generare funzioni intrinseche (funzioni intrinseche vengono create come codice inline, non come chiamate di funzione), è possibile utilizzare funzione pragma in modo esplicito per forzare una chiamata di funzione.Un pragma di funzione è presente una volta, viene applicato alla prima definizione di funzione che contiene una funzione intrinseca specificata.L'effetto continua fino alla fine del file di origine o all'aspetto di un oggetto funzione intrinseca pragma che specifica la stessa funzione intrinseca.funzione il pragma può essere utilizzato solo all'esterno di una funzione (a livello globale.

Per gli elenchi delle funzioni che hanno form intrinseci, vedere intrinseco #pragma.

Esempio

// 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, '!'));
}
  

Vedere anche

Riferimenti

Direttive pragma e la parola chiave di __Pragma