function (C/C++)
Pragma'ler bağımsız değişken listesinde belirtilen işlev çağrıları oluşturulur belirtir.
#pragma function( function1 [, function2, ...] )
Notlar
Kullanırsanız, iç pragma (veya /Oi) iç işlevleri (işlev çağrıları olarak değil, satır içi kod olarak iç işlevlerin oluşturulur) göstermenin derleyicinin bildirmek için kullanabileceğiniz işlevi pragma açıkça bir işlev çağrısı zorlamak için. İşlev pragma görülen sonra belirtilen bir iç işlevi içeren ilk işlev tanımı etkili olur. Kaynak dosyasının sonuna ya da görünümünü etkisi devam eder bir iç pragma aynı iç işlevi belirtme. İşlevi pragma dışında bir işlev kullanılabilir — genel düzeyde.
İçsel formların işlevleri listeler için bkz: içsel # Pragma.
Örnek
// 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, '!'));
}