Freigeben über


function (C/C++)

Gibt an, dass Aufrufe der Funktionen, die in der Argumentliste des Pragmas angegeben werden, generiert werden.

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

Hinweise

Wenn Sie das systemintern Pragma (oder /Oi) verwenden, um dem Compiler mitzuteilen, dass systeminterne Funktionen zu generieren (systeminterne Funktionen werden generiert, z) - Funktion nicht als Inlinecode, können Sie das Funktion Pragma verwenden, um einen Funktionsaufruf explizit zu erzwingen.Sobald pragma Funktion wird ein in Kraft tritt bei der ersten Funktionsdefinition angezeigt, die eine bestimmte systeminterne Funktion enthält.Der Effekt wird am Ende der Quelldatei oder zur Darstellung eines systemintern Pragmas, die die gleiche systeminterne Funktion angibt.Das Funktion Pragma kann nur außerhalb einer Funktion der in der globalen Ebene verwendet werden.

Eine Liste der Funktionen, die systeminterne Form haben, finden Sie unter #pragma systemintern.

Beispiel

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

Siehe auch

Referenz

Pragma-Direktiven und das __Pragma-Schlüsselwort