Compartilhar via


function (C/C++)

Especifica as chamadas para as funções especificadas na lista de argumentos de pragma que serão geradas.

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

Comentários

Se você usar o pragma intrinsic (ou /Oi) para mandar o compilador gerar funções intrínsecas (funções intrínsecas são geradas como código embutido, não como chamadas de função), você pode usar o pragma function para forçar explicitamente uma chamada de função. Após um pragma da função ser considerado, ele entre em vigor na primeira definição de função que contém uma função intrínseca especificada. O efeito continua ao final do arquivo de origem ou até o aparecimento de um pragma intrinsic que especifica a mesma função intrínseca. O pragma function pode ser usado apenas para uma função — no nível global.

Para listas de funções que têm formulários intrínsecos, consulte #pragma intrínseco.

Exemplo

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

Consulte também

Referência

Diretivas Pragma e a palavra-chave __Pragma