function (C/C++)
Určuje generovat volání funkcí v seznamu argumentů pragma.
#pragma function( function1 [, function2, ...] )
Poznámky
Používáte-li vnitřní pragma (nebo /Oi) informovat kompilátor generovat vnitřní funkce (vnitřní funkce jsou generovány jako vložený kód, nikoli jako volání funkce), můžete použít funkce pragma explicitně vynutit volání funkce.Jakmile je zjištěna pragma funkce, nabývá účinku na první definice funkce obsahující zadaný vnitřní funkce.Efekt pokračuje na konec zdrojového souboru nebo vzhled vnitřní pragma určující vnitřní stejnou funkci.Funkce pragma mohou být použity pouze mimo funkci – na globální úrovni.
Seznamy funkce, které mají vlastní formuláře, viz # pragma vnitřní.
Příklad
// 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, '!'));
}