function
pragma
Derleyiciye, 'nin bağımsız değişken listesinde belirtilen işlevlere çağrılar oluşturmasını pragmasöyler.
Sözdizimi
#pragma function(
işlev1 [,
işlev2 ... ])
Açıklamalar
İç işlevler normalde işlev çağrıları olarak değil satır içi kod olarak oluşturulur. Derleyiciye iç işlevler oluşturmasını söylemek için veya /Oi
derleyici seçeneğini kullanırsanızintrinsic
pragma, açıkça bir işlev çağrısı zorlamak için öğesini function
pragma kullanabilirsiniz. function
pragma bir görüldükten sonra, belirtilen bir iç işlevi içeren ilk işlev tanımında geçerlilik kazanır. Etki, kaynak dosyanın sonuna veya aynı iç işlevi belirten bir intrinsic
pragma görünümüne devam eder. Yalnızca genel düzeyde bir işlevin dışını kullanabilirsiniz function
pragma .
İç formları olan işlevlerin listeleri için bkz intrinsic
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, '!'));
}
str is 'Now************'
str is '!!!!!!!!!!!!!!!'
Ayrıca bkz.
Pragma yönergeleri ve __pragma
ve _Pragma
anahtar sözcükleri