Compartir a través de


function (C/C++)

Especifica que las llamadas a funciones especificadas en la lista de argumentos de pragma están generadas.

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

Comentarios

Si utiliza el pragma de intrínseco (o /Oi) para indicar al compilador que genere funciones intrínsecas (se generan las funciones intrínsecas como código insertado, no como llamadas de función), puede utilizar la directiva pragma de función explícitamente para forzar una llamada de función.Un pragma de función se considera una vez, se aplica a la primera definición de función que contiene una función intrínseca especificada.El efecto continúa hasta el final del archivo de código fuente o el aspecto de un pragma de intrínseco que especifica la misma función intrínseca.La pragma de función sólo se puede utilizar fuera de una función (en el nivel global.

Para las listas de funciones con formularios intrínsecos, vea función intrínseca de #pragma.

Ejemplo

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

Vea también

Referencia

Directivas de pragma y la palabra clave de __Pragma