{"id":3208,"date":"2023-03-06T06:16:00","date_gmt":"2023-03-05T21:16:00","guid":{"rendered":"http:\/\/43.203.250.216\/?p=3208"},"modified":"2023-03-05T18:18:02","modified_gmt":"2023-03-05T09:18:02","slug":"c-template-%ec%84%a0%ec%96%b8%ea%b3%bc-%ea%b5%ac%ed%98%84%ec%9d%84-%ec%84%9c%eb%a1%9c-%eb%8b%a4%eb%a5%b8-%ed%8c%8c%ec%9d%bc%ec%97%90-%eb%82%98%eb%88%8c-%ec%88%98-%ec%97%86%eb%8b%a4","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=3208","title":{"rendered":"C++ template \uc120\uc5b8\uacfc \uad6c\ud604\uc744 \uc11c\ub85c \ub2e4\ub978 \ud30c\uc77c\uc5d0 \ub098\ub20c \uc218 \uc5c6\ub2e4"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\ucee4\uc2a4\ud140 Queue \ud074\ub798\uc2a4\ub97c \uc791\uc131\ud558\ub294\ub370 queue\uc758 item\uc740 \ucd94\ud6c4\uc5d0 \ubcc0\uacbd \ub420 \uc218 \uc788\uc73c\ubbc0\ub85c \ud15c\ud50c\ub9bf\uc73c\ub85c \uc791\uc131\ud558\uace0\uc790 \ud55c\ub2e4. Queue class\ub97c header\uc5d0 \uc815\uc758\ud558\uace0 \uad6c\ud604\uc744 cpp \ud30c\uc77c\uc5d0 \uc791\uc131\ud574 \uc900\ub2e4\uc74c main \ud568\uc218\uc5d0\uc11c \ub2e4\uc74c\uacfc \uac19\uc774 queue\ub97c \uc0dd\uc131\ud558\uace0 \ucef4\ud30c\uc77c\uc744 \uc2dc\ub3c4\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\uc74c\uc740 \ud574\ub2f9 template\uc744 \uc0ac\uc6a9\ud558\ub294 caller(main \ud568\uc218)\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/\n\/\/ C++ template instantiation test.\n\/\/\n\/\/                                             - litcoder\n\n#include &lt;iostream>\n#include \"queue.h\"\n\nusing namespace std;\nint main() {\n    \/\/ Create an integer type queue.\n    queue&lt;int> q;\n\n    \/\/ Push elements from the queue.\n    q.push(0);\n    q.push(1);\n    q.push(2);\n\n    \/\/ Pop and print all elements.\n    while (! q.empty()) {\n        cout &lt;&lt; \"Popped: \" &lt;&lt; q.pop() &lt;&lt; endl;\n    }\n\n    return 0;\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud558\uc9c0\ub9cc \ubcc4 \ubb38\uc81c \uc5c6\uc744\uac83\uc774\ub77c\ub294 \uc0dd\uac01\uacfc \ub2ec\ub9ac \uc548\ud0c0\uae5d\uac8c\ub3c4 \ube4c\ub4dc\ub294 \uc2e4\ud328\ud55c\ub2e4. \uacf5\ub4e4\uc5ec\uc11c \ub9cc\ub4e0 method\uac00 \ub9c1\ucee4\uc5d0 \uc758\ud574 \ud558\ub098\ub3c4 \ube60\uc9d0\uc5c6\uc774 &#8220;undefined reference&#8221; \uc624\ub958\ub97c \ubc49\uc73c\uba74\uc11c \uc2e4\ud328\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ make\ng++  -g -Wall  -c -o queue.o queue.cpp\ng++  -g -Wall  -c -o main.o main.cpp\ng++ -o qtest queue.o main.o\n\/usr\/bin\/ld: main.o: in function `main':\n\/home\/litcoder\/Downloads\/cpptemplate\/main.cpp:12: undefined reference to `queue&lt;int>::queue()'\n\/usr\/bin\/ld: \/home\/litcoder\/cpptemplate\/main.cpp:15: undefined reference to `queue&lt;int>::push(int)'\n\/usr\/bin\/ld: \/home\/litcoder\/cpptemplate\/main.cpp:16: undefined reference to `queue&lt;int>::push(int)'\n\/usr\/bin\/ld: \/home\/litcoder\/cpptemplate\/main.cpp:17: undefined reference to `queue&lt;int>::push(int)'\n\/usr\/bin\/ld: \/home\/litcoder\/cpptemplate\/main.cpp:21: undefined reference to `queue&lt;int>::pop()'\n\/usr\/bin\/ld: \/home\/litcoder\/cpptemplate\/main.cpp:20: undefined reference to `queue&lt;int>::empty()'\n\/usr\/bin\/ld: \/home\/litcoder\/cpptemplate\/main.cpp:25: undefined reference to `queue&lt;int>::~queue()'\n\/usr\/bin\/ld: \/home\/litcoder\/cpptemplate\/main.cpp:25: undefined reference to `queue&lt;int>::~queue()'\ncollect2: error: ld returned 1 exit status\nmake: *** [Makefile:7: qtest] Error 1\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ubb38\uc81c\uc5d0 \ub300\ud55c \ud574\uacb0\ucc45\uc740 \uc0dd\uac01\ubcf4\ub2e4 \uac04\ub2e8\ud55c\ub370, cpp\ud30c\uc77c\uc5d0 \ub530\ub85c \ubd84\ub9ac\ud588\ub358 \uad6c\ud604 \ubd80\ubd84\uc744 \uc120\uc5b8\ub4e4\uacfc \ud568\uaed8 header file\uc5d0 \ub450\ub294 \uac83\uc774\ub2e4. (\ud574\uce58\uc6e0\ub098?)<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ make\ng++  -g -Wall  -c -o queue.o queue.cpp\ng++  -g -Wall  -c -o main.o main.cpp\ng++ -o qtest queue.o main.o\n$ .\/qtest\nPopped: 0\nPopped: 1\nPopped: 2<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\uc65c undefined reference \uc624\ub958\uac00 \ub0ac\uc744\uae4c?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Queue.o\uac00 \ube4c\ub4dc\ub410\uc73c\ub2c8 \uac70\uae30 \ubcf4\uba74 \ubd84\uba85\ud788 \uc800 method\ub4e4\uc774 \uc120\uc5b8\ub418\uc5b4 \uc788\uc744\ud150\ub370 \ub9d0\uc774\ub2e4. \ube4c\ub4dc\ub41c symbol\ub4e4\uc744 \uc0b4\ud3b4\ubcf4\uc790,<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ objdump -t .\/queue.o\n\n.\/queue.o:     file format elf64-x86-64\n\nSYMBOL TABLE:\n0000000000000000 l    df *ABS*\t0000000000000000 queue.cpp\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O.O \uc5c6\ub2e4. \uc544\ubb34\uac83\ub3c4. queue.o\ub294 \uc544\ubb34 symbol\uc774 \uc5c6\ub294 \ube48 \ud30c\uc77c\uc774\uc5c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc55e\uc11c \ud574\uacb0\ub410\ub2e4\uace0 \ud588\ub358 header\uc5d0\uc11c template \uc120\uc5b8\uacfc \uad6c\ud604\uc744 \ubaa8\ub450 \uc218\ud589\ud558\ub294 \uacbd\uc6b0\uc5d0\ub3c4 queue.o\uc758 symbol table\uc774 \ube44\uc5b4 \uc788\ub294\uac83\uc740 \ub9c8\ucc2c\uac00\uc9c0 \uc774\uc9c0\ub9cc, \uc774 \uacbd\uc6b0, caller\uc778 main.o\uc5d0\ub294 template\uc774 \uc2e4\uc81c \uc0ac\uc6a9\ud558\ub294 type\uc5d0 binding\ub418\uc5b4 embed\ub418\uc5b4 \uc788\ub2e4. main.o\uc758 symbol\ub4e4\uc744 \uc0b4\ud3b4\ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 mangle\ub41c symbol\ub4e4\uc744 \ubcfc \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ objdump -t .\/main.o\n\n.\/main.o:     file format elf64-x86-64\n\nSYMBOL TABLE:\n0000000000000000 l    df *ABS*\t0000000000000000 main.cpp\n...\n0000000000000000  w    F .text._ZN5queueIiEC2Ev\t0000000000000048 _ZN5queueIiEC1Ev\n0000000000000000  w    F .text._ZN5queueIiE4pushEi\t000000000000003f _ZN5queueIiE4pushEi\n...<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ucc38\uace0\ub85c, C++ symbol\uc758 type\uc740 <a href=\"http:\/\/demangler.com\/\">demangler<\/a>\ub97c \uc774\uc6a9\ud558\uba74 \ubcfc \uc218 \uc788\ub294\ub370, demangle\ud55c \uacb0\uacfc\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">_ZN5queueIiEC2Ev -> queue&lt;int>::queue()\n_ZN5queueIiE4pushEi -> queue&lt;int>::push(int)<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\uacb0\ub860<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">C++ template\uc740 \ube4c\ub4dc\ud558\ub294 \uc2dc\uc810\uc5d0\uc11c \uc5b4\ub5a4 data type\uc73c\ub85c binding\ub420 \uc9c0 \uc54c \uc218 \uc5c6\uae30 \ub54c\ubb38\uc5d0 \uad6c\ud604 \ubd80\ubd84\uc744 \ubcc4\ub3c4\uc758 \ud30c\uc77c\ub85c \ub9cc\ub4e4\uc5b4 \ubd24\uc790 \uc544\ubb34 \uac83\ub3c4 \ube4c\ub4dc \ub418\uc9c0 \uc54a\ub294\ub2e4. Header file\uc5d0 \uc120\uc5b8\uacfc \uad6c\ud604\uc744 \ud568\uaed8 \ub450\uace0 \uc774 template\uc744 \uc0ac\uc6a9\ud558\ub294 code\uac00 \uc774\ub97c include\ud558\uc5ec \uc5b4\ub5a4 data type\uc73c\ub85c binding\ub420 \uc9c0 \uacb0\uc815\ud574 \uc8fc\uba74 \uadf8\ub54c\uc11c\uc57c \uc2e4\uc81c symbol\uc774 caller module\uc5d0 \ud3ec\ud568\ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc989, template\uc744 \uc120\uc5b8\uacfc \uad6c\ud604\uc73c\ub85c \ub098\ub204\uc5b4\uc11c \ub530\ub85c \ube4c\ub4dc\ud558\ub294 \uac83\uc740 \ubd88\uac00\ub2a5\ud560 \ubfd0\ub354\ub7ec \uc758\ubbf8\ub3c4 \uc5c6\uc73c\ub2c8 include\ub420 \ud558\ub098\uc758 \ud30c\uc77c(\uc8fc\ub85c header)\uc5d0 \ub123\uc5b4\uc11c \uc120\uc5b8\uacfc \uad6c\ud604\uc744 \ud569\uccd0\ub450\ub294\uac8c \uac00\uc7a5 \uc88b\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ucee4\uc2a4\ud140 Queue \ud074\ub798\uc2a4\ub97c \uc791\uc131\ud558\ub294\ub370 queue\uc758 item\uc740 \ucd94\ud6c4\uc5d0 \ubcc0\uacbd \ub420 \uc218 \uc788\uc73c\ubbc0\ub85c \ud15c\ud50c\ub9bf\uc73c\ub85c \uc791\uc131\ud558\uace0\uc790 \ud55c\ub2e4. Queue class\ub97c header\uc5d0 \uc815\uc758\ud558\uace0 \uad6c\ud604\uc744 cpp \ud30c\uc77c\uc5d0 \uc791\uc131\ud574 \uc900\ub2e4\uc74c main \ud568\uc218\uc5d0\uc11c \ub2e4\uc74c\uacfc \uac19\uc774 queue\ub97c \uc0dd\uc131\ud558\uace0 \ucef4\ud30c\uc77c\uc744 \uc2dc\ub3c4\ud55c\ub2e4. \ub2e4\uc74c\uc740 \ud574\ub2f9 template\uc744 \uc0ac\uc6a9\ud558\ub294 caller(main \ud568\uc218)\uc774\ub2e4. \ud558\uc9c0\ub9cc \ubcc4 \ubb38\uc81c \uc5c6\uc744\uac83\uc774\ub77c\ub294 \uc0dd\uac01\uacfc \ub2ec\ub9ac \uc548\ud0c0\uae5d\uac8c\ub3c4 \ube4c\ub4dc\ub294 \uc2e4\ud328\ud55c\ub2e4. \uacf5\ub4e4\uc5ec\uc11c \ub9cc\ub4e0 method\uac00 \ub9c1\ucee4\uc5d0 \uc758\ud574 \ud558\ub098\ub3c4 \ube60\uc9d0\uc5c6\uc774 &#8220;undefined reference&#8221; [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[5],"tags":[247,311,310],"class_list":["post-3208","post","type-post","status-publish","format-standard","hentry","category-programming","tag-c","tag-demangle","tag-template"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1489,"url":"https:\/\/litcoder.com\/?p=1489","url_meta":{"origin":3208,"position":0},"title":"Android Studio\uc5d0\uc11c Googletest \uc0ac\uc6a9\uc744 \uc704\ud55c \uc124\uc815","author":"litcoder","date":"2016\ub144 7\uc6d4 1\uc77c","format":false,"excerpt":"Android Studio\ub294 \ub0b4 PC\uc5d0\uc11c \uc880 \ub290\ub9ac\uae34 \ud558\uc9c0\ub9cc, \ub2e4\ub978 IDE\ub4e4\uc5d0 \ube44\ud574\uc11c\ub294 Emacs key binding\uc774 \ube44\uad50\uc801 \uc798\ub418\uc5b4 \uc788\uc5b4\uc11c \ub9cc\uc871 \ud558\uba74\uc11c \uc870\uae08\uc529 \ubc30\uc6cc\uac00\uace0 \uc788\ub2e4. NDK\ub85c JNI\uc5d0\uc11c \ubd88\ub7ec\ub2e4 \uc4f8 native code\ub97c \uad6c\ud604\ud558\ub2e4 \ubcf4\ub2c8 Googletest\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574 \ub9e4\ubc88 device\ub85c push \ud558\uace0 \uc2e4\ud589\ud558\ub294 \uacfc\uc815\uc774 \uaf64\ub098 \ubc88\uac70\ub85c\uc640\uc11c script\ub85c \ub9cc\ub4e4\uc5b4 \ubcf4\uc558\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 Android Studio\uc5d0\uc11c Googletest\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud55c\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":3434,"url":"https:\/\/litcoder.com\/?p=3434","url_meta":{"origin":3208,"position":1},"title":"C++\uc5d0\uc11c \uc624\ubc84\ub77c\uc774\ub4dc\ub41c \ud568\uc218\uac00 \uc548\ubd88\ub7ec\uc838\uc694","author":"litcoder","date":"2024\ub144 8\uc6d4 5\uc77c","format":false,"excerpt":"Data\ub77c\uace0 \ud558\ub294 \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\ub294 \ud074\ub798\uc2a4\ub4e4\uc758 \uae30\ucd08 \ud074\ub798\uc2a4\uac00 \uc788\ub2e4\uace0 \ud574\ubcf4\uc790. Data\uc758 type\uc5d0 \ub530\ub77c \ub85c\ub529 \ud558\ub294 \ubc29\ubc95\uc774 \uc11c\ub85c \ub2ec\ub77c\uc9c0\uae30 \ub54c\ubb38\uc5d0 loadData()\ub77c\uace0 \ud558\ub294 \uac00\uc0c1\ud568\uc218\ub97c \ud558\ub098 \uc815\uc758\ud574 \ub450\uace0, \uc0c1\uc18d\ubc1b\ub294 \ud074\ub798\uc2a4\ub4e4\uc740 \uc790\uae30\uac00 loading\ud558\ub294 \ubc29\ubc95\uc744 \uc815\uc758\ud558\ub3c4\ub85d \uad6c\uc131\ud55c\ub2e4. class Data { public: Data(int v) { loadData(v); } void dispValue() { cout << \"Value is \" << _val\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3509,"url":"https:\/\/litcoder.com\/?p=3509","url_meta":{"origin":3208,"position":2},"title":"gRPC\ub97c \uc774\uc6a9\ud55c Observer Pattern","author":"litcoder","date":"2024\ub144 10\uc6d4 14\uc77c","format":false,"excerpt":"Remote\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uae30\ub2a5\uc744 \ub9c8\uce58 local system\uc758 function call \ucc98\ub7fc \uc81c\uacf5 \ud55c\ub2e4\ub294 gRPC\uc758 \uac1c\ub150 \uc790\uccb4\ub294 1990\ub144\ub300\uc5d0\ub3c4 \uc788\uc5c8\ub358 \uac83\uc774\uae30\uc5d0 \uc0c8\ub85c\uc6b8 \uac83\uc740 \uc5c6\uc9c0\ub9cc, \uadf8 \uc704\uc5d0\uc11c \"Subject\uc758 \ubcc0\uacbd\uc774 \uc788\uc744 \ub54c subscriber\uc5d0\uac8c notify \ud574\uc8fc\ub294 Observer Pattern\uc744 \uc5b4\ub5bb\uac8c \uad6c\ud604 \ud560 \uc218 \uc788\uc744\uae4c?\"\ud558\ub294 \uc758\ubb38\uc774 \ub4e4\uc5c8\ub2e4. \uc774 \ud3ec\uc2a4\ud305\uc5d0\uc11c\ub294 gRPC\ub97c \uc774\uc6a9\ud55c observer pattern\uc758 \uc608\uc81c\ub85c server\uc5d0\uc11c \uc784\uc758\uc758 \uc8fc\uc2dd\uacfc \uadf8 \ubcc0\ub3d9\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/10\/grpc_observer.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/10\/grpc_observer.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/10\/grpc_observer.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/10\/grpc_observer.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":3456,"url":"https:\/\/litcoder.com\/?p=3456","url_meta":{"origin":3208,"position":3},"title":"Union\uc744 \uc774\uc6a9\ud55c byte \ub2e8\uc704 \uc811\uadfc","author":"litcoder","date":"2024\ub144 10\uc6d4 8\uc77c","format":false,"excerpt":"Big-endian\uc73c\ub85c \uc8fc\uc5b4\uc9c4 byte\ub4e4\uc744 little-endian\uc73c\ub85c \ubcc0\ud658\ud574\uc57c \ud558\ub294 \ubb38\uc81c\uac00 \uc0dd\uacbc\ub2e4. Byte\ub4e4\uc758 order\ub97c \uac70\uafb8\ub85c \ub9cc\ub4dc\ub294 \uac83\uc740 \uc5b4\ub835\uc9c0 \uc54a\uc9c0\ub9cc \uadf8\ub7ec\uae30 \uc704\ud574\uc11c\ub294 byte pointer\uac00 \uac00\ub9ac\ud0a4\ub294 element\ub4e4\uc744 1 byte \ub2e8\uc704\ub85c \uc811\uadfc\ud574\uc57c \ud55c\ub2e4. 1 byte\uc529 \ub4a4\uc9d1\uc740 \ub2e4\uc74c\uc5d0\ub294 \ubcc0\ud658\ub41c array\ub97c \uc6d0\ud558\ub294 \ud06c\uae30\uc758 \ud0c0\uc785\uc73c\ub85c \uc77d\ub3c4\ub85d type casting\uc744 \ud574\uc8fc\uc5b4\uc57c \ud55c\ub2e4. Union\uc744 \uc774\uc6a9\ud558\uba74 \ucf54\ub4dc\ub97c \ubabb\uc0dd\uae30\uac8c \ub9cc\ub4dc\ub294 pointer \uc9c1\uc811 \uc5f0\uc0b0\uc774\ub098 type casting\uc744\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":358,"url":"https:\/\/litcoder.com\/?p=358","url_meta":{"origin":3208,"position":4},"title":"Android device\uc5d0 quake\ub97c \uc62c\ub824\ubcf4\ub2e4","author":"litcoder","date":"2012\ub144 8\uc6d4 15\uc77c","format":false,"excerpt":"Quake\ub294 id software\uc5d0\uc11c \uc18c\uc2a4\ub97c \uacf5\uac1c\ud55c \uac8c\uc784\uc73c\ub85c \uc548\ub4dc\ub85c\uc774\ub4dc external \ub514\ub809\ud1a0\ub9ac\uc5d0 \ud568\uaed8 \ub4e4\uc5b4\uac00 \uc788\ub2e4. Android\uc758 \ub2e4\ub978 module\ub4e4\uacfc \ub9c8\ucc2c\uac00\uc9c0\ub85c \ub514\ub809\ud1a0\ub9ac\uc5d0\uc11c mm command\ub85c \uac04\ub2e8\ud788 \ucef4\ud30c\uc77c \ud560 \uc218 \uc788\uc73c\uba70, \uacb0\uacfc\ubb3c\uc740 \ub2e4\uc74c \ub450\uac1c\uc758 \ud30c\uc77c\ub85c \uc0dd\uc131\ub41c\ub2e4. out\/target\/product\/PRODUCT\/system\/app\/Quake.apk out\/target\/product\/PRODUCT\/system\/lib\/libquake.so \ud558\uc9c0\ub9cc \uc774 \ud30c\uc77c\ub4e4\uc744 push \ud574\uc8fc\uace0 \uc2e4\ud589\ud574\ub3c4 pak0.pak\ub97c \ucc3e\uc9c0\ubabb\ud55c\ub2e4\uba74\uc11c \uba48\ucd94\ub294\ub370, pocket quake\uc5d0 \ud544\uc694\ud55c \ud30c\uc77c\uc778 \uac83\uac19\ub2e4. \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 http:\/\/quake.pocketmatrix.com\/readme.php\uc5d0 \uc788\uc73c\uba70, pak0.pak\ub294\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2627,"url":"https:\/\/litcoder.com\/?p=2627","url_meta":{"origin":3208,"position":5},"title":"GCC\uc5d0\uc11c integer arithmetic overflow \ubc29\uc9c0 \ub300\ucc45","author":"litcoder","date":"2020\ub144 11\uc6d4 25\uc77c","format":false,"excerpt":"Arithmetic overflow\ub294 \ubd80\ud638 \uc788\ub294 \ubcc0\uc218(signed variable)\uac00 \ud45c\uc2dc \ud560 \uc218 \uc788\ub294 \ucd5c\ub313\uac12 \/ \ucd5c\uc19f\uac12\uc744 \ub118\uc5b4 \uc130\uc744 \ub54c \ubd80\ud638\uac00 \ubc14\ub00c\uba74\uc11c \uc6d0\ud558\uc9c0 \uc54a\ub294 \uacb0\uacfc\uac00 \ub098\ud0c0\ub098\ub294 \uacbd\uc6b0\ub97c \ub9d0\ud55c\ub2e4. #include <iostream> #include <climits> using namespace std; int main(void) { int r = 0; int op = INT_MAX; cout << op << \" + 1 =\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/3208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3208"}],"version-history":[{"count":8,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/3208\/revisions"}],"predecessor-version":[{"id":3216,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/3208\/revisions\/3216"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}