Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Сообщает компилятору создавать вызовы функций, указанных в pragmaсписке аргументов, а не встраивать их.
Синтаксис
#pragma function(function1 [,function2 ... ])
Замечания
Встроенные функции обычно создаются как встроенный код, а не как вызовы функций. Если вы используете intrinsic pragma или /Oi параметр компилятора, чтобы сообщить компилятору создавать встроенные функции, можно использовать functionpragma для явного принудительного вызова функции.
function
pragma После того как он будет замечен, он вступает в силу при первом определении функции, содержащей указанную встроенную функцию. Эффект продолжается до конца исходного файла или к внешнему виду intrinsicpragma указанной встроенной функции. Вы можете использовать functionpragma только вне функции на глобальном уровне.
Список функций, имеющих встроенные формы, см. в разделе intrinsic pragma.
Пример
// 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 '!!!!!!!!!!!!!!!'
См. также
директивы Pragma и ключевые слова __pragma и _Pragma