{"id":137,"date":"2010-04-17T23:12:06","date_gmt":"2010-04-18T08:12:06","guid":{"rendered":"\/blog\/?p=137"},"modified":"2023-09-21T09:39:20","modified_gmt":"2023-09-21T00:39:20","slug":"vc-pragma","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=137","title":{"rendered":"[VC] #pragma"},"content":{"rendered":"\n<P>VC++\uc5d0\uc11c #pragma \uc0ac\uc6a9\ubc95 \uc124\uba85..<\/P>\n<P>MSDN\uc5d0 \ucd5c\uc801\ud654 \uad00\ub828 #pragma \uc6a9\ubc95\uc740 \uc544\ub798\uc640 \uac19\ub2e4.<\/P>\n<P><a class=\"con_link\" href=\"http:\/\/msdn.microsoft.com\/ko-kr\/library\/h7k3a0bw.aspx\" target=\"_blank\" rel=\"noopener\">http:\/\/msdn.microsoft.com\/ko-kr\/library\/h7k3a0bw.aspx<\/A><\/P>\n<P>&nbsp;<\/P>\n<P>#pragma auto_inline<\/P>\n<P>#pragma check_stack<\/P>\n<P>#pragma function<\/P>\n<P>#pragma inline_depth<\/P>\n<P>#pragma inline_recursion<\/P>\n<P>#pragma intrinsic<\/P>\n<P>#pragma optimize<\/P>\n<P>&nbsp;<\/P>\n<P>\uc774\uc911\uc5d0\uc11c \uc77c\ub2e8, <\/P>\n<P>#pragma function<\/P>\n<P>#pragma intrinsic<\/P>\n<P>#pragma optimize<\/P>\n<P>\uc5d0 \ub300\ud574\uc11c \uc815\ub9ac\ud558\uace0 \ub2e4\uc74c\uac83\uc740 \ub098\uc911\uc5d0 \uc815\ub9ac\ud558\uc790.<\/P>\n<P>&nbsp;<\/P>\n<P><SPAN style=\"FONT-SIZE: 10pt\"><STRONG>1. #pragma function<\/STRONG><\/SPAN><\/P>\n<TABLE>\n<TBODY>\n<TR>\n<TD style=\"PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px\">\n<DIV class=CodeSnippetTitleBar>\n<DIV class=CodeDisplayLanguage>&lt;\uc0ac\uc6a9\ubc95&gt;<\/DIV><\/DIV><\/TD><\/TR>\n<TR>\n<TD style=\"PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px\"><PRE id=ctl00_rs1_mainContentContainer_ctl01other class=libCScode space=\"preserve\">#pragma function( function1 [, function2, ...] )<\/PRE><\/TD><\/TR><\/TBODY><\/TABLE>\n<P>intrinsic pragma\ub294 \ucef4\ud30c\uc77c\ub7ec\uc5d0 intrinsic function(function call\uc774 \uc544\ub2c8\ub77c, inline code\ucc98\ub7fc code\uc790\uccb4\ub97c \ud568\uc218 \uc0ac\uc6a9\ud558\ub294 \uc7a5\uc18c\uc5d0 \uc0bd\uc785)\uc744 \uc0dd\uc131\ud558\ub3c4\ub85d \uc9c0\uc2dc\ud55c\ub2e4. <\/P>\n<P>function pragma\ub294 \ucef4\ud30c\uc77c\ub7ec\uc5d0\uac8c \uac15\uc81c\uc801\uc73c\ub85c function call\ud615\ud0dc\ub85c \uad6c\ud604\ub418\ub3c4\ub85d \uc9c0\uc2dc\ud55c\ub2e4.<\/P>\n<P>function pragma \uc120\uc5b8\ud6c4 intrinsic function\uc73c\ub85c \uae30\uc220\ub41c&nbsp; \uccab \ud568\uc218\ubd80\ud130 \uc601\ud5a5\uc744 \ubbf8\uccd0, \uc18c\uc2a4\ucf54\ub4dc\uc758 \ub9c8\uc9c0\ub9c9\ub77c\uc778\uae4c\uc9c0 \uc601\ud5a5\uc744 \ubbf8\uce58\uac70\ub098, \ub3d9\uc77c\ud55c \ud568\uc218\uba85\uc744 intrinsic pragma\ub85c \uc9c0\uc2dc\ud55c \ub77c\uc778\uc744 \ub9cc\ub0a0\ub54c \uae4c\uc9c0 \uc601\ud5a5\uc744 \ubbf8\uce5c\ub2e4.<\/P>\n<P>&nbsp;<\/P>\n<P>&lt;\uc0ac\uc6a9\uc608\uc2dc&gt;<\/P>\n<P>#include &lt;string.h&gt;<br \/><\/P>\n<P><FONT color=#ff0000>\/\/ use intrinsic forms of memset and strlen<br \/>#pragma intrinsic(memset, strlen)<\/FONT><br \/><br \/>\/\/ Find first word break in string, and set remaining<br \/>\/\/ chars in string to specified char value.<br \/>char *set_str_after_word(char *string, char ch) {<br \/>&nbsp;&nbsp; int i;<br \/>&nbsp;&nbsp; int len = strlen(string);&nbsp; <FONT color=#ff0000>\/* NOTE: uses intrinsic for strlen *\/<\/FONT><br \/><br \/>&nbsp;&nbsp; for(i = 0; i &lt; len; i++) {<br \/>&nbsp; &nbsp; &nbsp; if (isspace(*(string + i))) <br \/>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; break;<br \/>&nbsp;&nbsp; }<br \/><br \/>&nbsp;&nbsp; for(; i &lt; len; i++) <br \/>&nbsp; &nbsp; &nbsp; *(string + i) = ch;<br \/>&nbsp;&nbsp; <br \/>&nbsp;&nbsp; return string;<br \/>}<br \/><br \/><FONT color=#ff0000>\/\/ do not use strlen intrinsic<br \/>#pragma function(strlen)<\/FONT><br \/><br \/>\/\/ Set all chars in string to specified char value.<br \/>char *set_str(char *string, char ch) {<br \/><FONT color=#ff0000>&nbsp;&nbsp; \/\/ Uses intrinsic for memset, but calls strlen library function<\/FONT><br \/>&nbsp;&nbsp; return (char *) memset(string, ch, strlen(string));<br \/>}<br \/><br \/>int main() {<br \/>&nbsp;&nbsp; char *str = (char *) malloc(20 * sizeof(char));<br \/><br \/>&nbsp;&nbsp; strcpy_s(str, sizeof(\"Now is the time\"), \"Now is the time\");<br \/>&nbsp;&nbsp; printf(\"str is '%s'\\n\", set_str_after_word(str, '*'));<br \/>&nbsp;&nbsp; printf(\"str is '%s'\\n\", set_str(str, '!'));<br \/>}<\/P>\n<P>&nbsp;<\/P>\n<P><SPAN style=\"FONT-SIZE: 10pt\"><STRONG>2. #pragma intrinsic<\/STRONG><\/SPAN><\/P>\n<P>&lt;\uc0ac\uc6a9\ubc95&gt;<\/P>\n<P>#pragma intrinsic( function1 [, function2, ...] ) <\/P>\n<P>&nbsp;<\/P>\n<P>intrinsic pragma\ub97c \uc0ac\uc6a9\ud558\uba74, \ucef4\ud30c\uc77c\ub7ec\uac00 \ud310\ub2e8\ud558\uae30\uc5d0 inline code\ub85c \ucc98\ub9ac\ud558\ub294 \uac83\uc774 \uc88b\uc740\uba74 inline\ud654 \uc2dc\ud0a4\uace0 \uadf8\ub807\uce58 \uc54a\uc73c\uba74 function call \ud615\ud0dc\ub97c \ucde8\ud558\ub3c4\ub85d \ud55c\ub2e4.<\/P>\n<P>intrinsic pragma\ub294 function pragma\uc640 \ud398\uc5b4\ub85c \uc0ac\uc6a9\ub420 \uc218 \uc788\uc73c\uba70, intrinsic pragma\ub85c \uc9c0\uc2dc\ub41c \ud568\uc218\ub294 \uadf8\ub2e4\uc74c\ub77c\uc778\ubd80\ud130 \uc601\ud5a5\uc744 \ubc1b\uc544\uc11c function pragma\ub85c \uc7ac \uc9c0\uc815\ub418\uae30 \uc804\uc5d0\ub294 \uc18c\uc2a4\ud30c\uc77c\uc804\uccb4\uc5d0 \uc601\ud5a5\uc744 \ubbf8\uce5c\ub2e4.<\/P>\n<P>&nbsp;<\/P>\n<P>&lt;\uc0ac\uc6a9\uc608\uc2dc&gt;<\/P><PRE id=ctl00_rs1_mainContentContainer_ctl75other class=libCScode space=\"preserve\">\/\/ pragma_directive_intrinsic.cpp<br \/>\/\/ processor: x86<br \/>#include &lt;dos.h&gt;   \/\/ definitions for _disable, _enable<br \/><FONT color=#ff0000>#pragma intrinsic(_disable)<br \/>#pragma intrinsic(_enable)<br \/><\/FONT>void f1(void) {<br \/>   _disable();<br \/>   \/\/ do some work here that should not be interrupted<br \/>   _enable();<br \/>}<br \/>int main() {<br \/>}<\/PRE><PRE class=libCScode space=\"preserve\"><P><SPAN style=\"FONT-SIZE: 10pt\"><STRONG><SPAN style=\"FONT-SIZE: 10pt\">3. #pragma optimize<\/SPAN><\/STRONG><\/SPAN><\/P><TABLE><TBODY><TR><TD style=\"PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px\"><DIV class=CodeSnippetTitleBar><DIV class=CodeDisplayLanguage>&lt;\uc0ac\uc6a9\ubc95&gt;<\/DIV><DIV class=CodeDisplayLanguage>#pragma optimize( \"[optimization-list]\", {on | off} )<\/DIV><DIV class=CodeDisplayLanguage>&nbsp;<\/DIV><DIV class=CodeDisplayLanguage>optimize pragma\ub294 \ud568\uc218 \ubc16\uc5d0 \uc120\uc5b8\uc774 \ub418\uba70 pragma\uac00 \uc120\uc5b8\ub41c \ud6c4 \uc815\uc758\ub41c \uccab\ubc88\uc9f8 \ud568\uc218\uc5d0 \uc601\ud590\uc751\u3139 \ubbf8\uce5c\ub2e4.<\/DIV><DIV class=CodeDisplayLanguage>on\/off \ud30c\ub77c\ubbf8\ud130\ub85c optimization-list\uc5d0 \uc815\uc758\ub41c \uc635\uc158\ub4e4\uc744 \uc124\uc815\/\ubbf8\uc124\uc815\ud560\uc218 \uc788\ub2e4.<\/DIV><DIV class=CodeDisplayLanguage>[[optimization-list]]<\/DIV><DIV class=CodeDisplayLanguage>g &nbsp; &nbsp;&nbsp; : Enable global optimizations.<br \/>p &nbsp; &nbsp;&nbsp; : Improve floating-point consistency.<br \/>s or t : Specify short or fast sequences of machine code.<br \/>y &nbsp; &nbsp;&nbsp; : Generate frame pointers on the program stack.<br \/><br \/>optimize pragma\uc5d0\uc11c empty string(\"\")\ub294 \ud2b9\ubcc4\ud55c \uae30\ub2a5\uc744 \ub2f4\uace0 \uc788\ub2e4.<\/DIV><DIV class=CodeDisplayLanguage>-.off \ud30c\ub77c\ubbf8\ud130 \uc0ac\uc6a9\uc2dc, optimization-list\uc758 \ubaa8\ub4e0 \uc635\uc158\uc744 off\uc2dc\ud0b4<\/DIV><DIV class=CodeDisplayLanguage>-.on \ud30c\ub77c\ubbf8\ud130 \uc0ac\uc6a9\uc2dc, '\/O' compiler option\uc73c\ub85c \uc124\uc815\ub41c \uc635\uc158\uc744 \uc7ac\uc124\uc815\uc2dc\ud0b4<\/DIV><DIV class=CodeDisplayLanguage>&nbsp;<\/DIV><DIV class=CodeDisplayLanguage>&lt;\uc0ac\uc6a9\uc608\uc2dc&gt;<\/DIV><DIV class=CodeDisplayLanguage><FONT color=#ff0000>#pragma optimize( \"tp\", on )<\/FONT><\/DIV><DIV class=CodeDisplayLanguage>&nbsp;<\/DIV><DIV class=CodeDisplayLanguage>#pragma optimize( \"\", off )<br \/>.<br \/>.<br \/>.<br \/>#pragma optimize( \"\", on )<SPAN style=\"FONT-FAMILY: Dotum\"><SPAN style=\"TEXT-DECORATION: underline\"><SPAN style=\"FONT-WEIGHT: bold\"><br \/><br \/>\ucd9c\ucc98 : http:\/\/blog.naver.com\/kri7001\/30037616891<br \/><\/SPAN><\/SPAN><\/SPAN><\/DIV><\/DIV><\/TD><\/TR><\/TBODY><\/TABLE><\/PRE>\n","protected":false},"excerpt":{"rendered":"<p>VC++\uc5d0\uc11c #pragma \uc0ac\uc6a9\ubc95 \uc124\uba85.. MSDN\uc5d0 \ucd5c\uc801\ud654 \uad00\ub828 #pragma \uc6a9\ubc95\uc740 \uc544\ub798\uc640 \uac19\ub2e4. http:\/\/msdn.microsoft.com\/ko-kr\/library\/h7k3a0bw.aspx &nbsp; #pragma auto_inline #pragma check_stack #pragma function #pragma inline_depth #pragma inline_recursion #pragma intrinsic #pragma optimize &nbsp; \uc774\uc911\uc5d0\uc11c \uc77c\ub2e8, #pragma function #pragma intrinsic #pragma optimize \uc5d0 \ub300\ud574\uc11c \uc815\ub9ac\ud558\uace0 \ub2e4\uc74c\uac83\uc740 \ub098\uc911\uc5d0 \uc815\ub9ac\ud558\uc790. &nbsp; 1. #pragma function &lt;\uc0ac\uc6a9\ubc95&gt; #pragma function( function1 [, function2, &#8230;] ) intrinsic [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[18],"tags":[],"class_list":["post-137","post","type-post","status-publish","format-standard","hentry","category-development_language"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=137"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/137\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}