function
pragma
Indica al compilatore di generare chiamate alle funzioni specificate nell'elenco pragmadi argomenti, anziché inlining.
Sintassi
#pragma function(
function1 [,
function2 ... ])
Osservazioni:
Le funzioni intrinseche vengono in genere generate come codice inline, non come chiamate di funzione. Se si usa l'opzione intrinsic
pragma del compilatore o /Oi
per indicare al compilatore di generare funzioni intrinseche, è possibile usare per function
pragma forzare in modo esplicito una chiamata di funzione. function
pragma Una volta visualizzato, 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 intrinsic
pragma che specifica la stessa funzione intrinseca. È possibile usare l'esterno function
pragma di una funzione solo a livello globale.
Per gli elenchi delle funzioni con forme intrinseche, vedere intrinsic
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, '!'));
}
str is 'Now************'
str is '!!!!!!!!!!!!!!!'