API Basic Include ko - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

Include

ClassicUO โ€ข Basic

Include๋Š” ๊ตฌ๋ฌธ ๋ถ„์„๊ณผ ์‹คํ–‰ ์ „์— ๋‹ค๋ฅธ ์†Œ์Šค ํŒŒ์ผ์„ ์ฝ์Šต๋‹ˆ๋‹ค. ์ฃผ ์Šคํฌ๋ฆฝํŠธ์—์„œ ํ•จ์ˆ˜์™€ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์ง€๋งŒ ํ”„๋กœ์‹œ์ €๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์ž๋™ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ •ํ™•ํ•œ ๊ตฌ๋ฌธ

Include "fileName"

๋งค๊ฐœ๋ณ€์ˆ˜

  • fileName โ€” fileName: ์ž‘์€๋”ฐ์˜ดํ‘œ ๋˜๋Š” ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ผ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ํŒŒ์ผ ์ด๋ฆ„. ์ƒ๋Œ€ ๋ฐ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์ง€์›ํ•˜๋ฉฐ ๋ณ€์ˆ˜๋‚˜ ์‹์ด ์•„๋‹Œ ๋ฆฌํ„ฐ๋Ÿด ๊ฒฝ๋กœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ™•์žฅ์ž๋Š” ์ž์œ ์ง€๋งŒ ๋‚ด์šฉ์€ ์—”์ง„์ด ์ง€์›ํ•˜๋Š” ์†Œ์Šค ์ฝ”๋“œ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

๋ฐ˜ํ™˜๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ์ค€๋น„ ์ง€์‹œ๋ฌธ์ด๋ฏ€๋กœ Include(...)๋ฅผ ๋Œ€์ž…ํ•˜๊ฑฐ๋‚˜ ID, TRUE/FALSE, 1/0์„ ๊ธฐ๋Œ€ํ•˜์ง€ ๋งˆ์„ธ์š”. ํฌํ•จ๋œ ํ•จ์ˆ˜๋Š” RETURN์œผ๋กœ ์ž์‹ ์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋™์ž‘

  • SUB/FUNCTION ๋ฐ–์—์„œ Include๋ฅผ ํ•œ ์ค„์— ๋”ฐ๋กœ ์”๋‹ˆ๋‹ค. ํฌํ•จํ•˜๋Š” ํŒŒ์ผ ์˜†์„ ๋จผ์ € ์ฐพ๊ณ  ๊ทธ ํŒŒ์ผ์˜ Include ํ•˜์œ„ ํด๋”๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ค‘์ฒฉ ๊ฒฝ๋กœ๋Š” ํ˜„์žฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. ์ƒ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์“ฐ๊ธฐ ์ „์— ์ฃผ ํŒŒ์ผ์„ ์ €์žฅํ•˜์„ธ์š”.
  • ์ „์ฒด ๊ฒฝ๋กœ๋งˆ๋‹ค ํ•œ ๋ฒˆ๋งŒ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. A โ†’ B โ†’ A ์ˆœํ™˜์€ SC016์ž…๋‹ˆ๋‹ค. ๊ฒฝ๋กœยท์ ‘๊ทผยท๊ตฌ๋ฌธ ์˜ค๋ฅ˜๋Š” ์ „์—ญ ์ดˆ๊ธฐํ™” ์ „์— ์‹คํ–‰์„ ๋ง‰์Šต๋‹ˆ๋‹ค. ์ง„๋‹จ๊ณผ ๋””๋ฒ„๊ฑฐ๋Š” ์›๋ณธ ํŒŒ์ผ๊ณผ ์ค„์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด๊ณผ SUB/FUNCTION์€ ์‹œ์ž‘ํ•œ ํŒŒ์ผ ์•ˆ์—์„œ ๋‹ซ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „์—ญ ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜๋ฅผ ์ค‘๋ณต ์„ ์–ธํ•˜๋ฉด ์‹คํ–‰ ์ „์— SC017์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์Œ ์‹คํ–‰์€ ์ˆ˜์ •๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์ค€๋น„๋˜๊ฑฐ๋‚˜ ์‹คํ–‰ ์ค‘์ธ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ฝ”๋“œ ์Šค๋ƒ…์ƒท์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ•„์„ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ํŒŒ์ผ์€ ์ž์ฒด ์„ ์–ธ ์ „์— Option Explicit๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ๋žตํ•˜๋ฉด ์ฃผ ํŒŒ์ผ ์„ค์ •์„ ์ƒ์†ํ•ฉ๋‹ˆ๋‹ค. ์„ ์–ธ์€ ์ด๋ฆ„ ๊ณต๊ฐ„์„ ๊ณต์œ ํ•˜๋ฉฐ ๋ชจ๋“ˆ์„ ์ž๋™ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • UTF-8๋กœ ์ฝ๊ณ  BOM์„ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ์ค€๋น„ํ•  ๋•Œ ์ฃผ ํŒŒ์ผ ํฌํ•จ 128๊ฐœ ํŒŒ์ผ, ์ค‘์ฒฉ 32๋‹จ๊ณ„, ์†Œ์Šค ๋ฌธ์ž 16,777,216๊ฐœ๊ฐ€ ํ•œ๋„์ž…๋‹ˆ๋‹ค. ์ฃผ์„์ด๋‚˜ ๋ฌธ์ž์—ด์˜ Include๋Š” ํŒŒ์ผ์„ ์ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ์˜ˆ์ œ๋Š” ๋ณ„๋„ ํด๋”์ž…๋‹ˆ๋‹ค. Main.bas์™€ ํ‘œ์‹œ๋œ ๋ชจ๋“  ํŒŒ์ผ์„ ์ •ํ™•ํ•œ ์ด๋ฆ„๊ณผ ํ•˜์œ„ ํด๋”์— ์ €์žฅํ•˜์„ธ์š”. ์™„์„ฑ๋œ ๋ฌถ์Œ์€ API Manual/Examples/Basic.Include/1, /2, /3์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ํ•ฉ์น˜์ง€ ๋ง๊ณ  Main.bas๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

์˜ˆ์ œ

1. ๊ณตํ†ต ํ•จ์ˆ˜

# Main.bas๊ฐ€ Common.bas๋ฅผ ํฌํ•จํ•˜๊ณ  Add(4, 7)์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. left์™€ right๋Š” ๊ฐ’์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. Add๋Š” ํ•ฉ๊ณ„๋ฅผ, Main์€ Integer 11์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Common.bas๋Š” ํ˜ผ์ž ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Option Explicit On
Include "Common.bas"
SUB Main()
    RETURN Add(4, 7)
END SUB

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์‹คํ–‰ ์„ค๋ช…:

Main.bas๊ฐ€ Common.bas๋ฅผ ํฌํ•จํ•˜๊ณ  Add(4, 7)์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. left์™€ right๋Š” ๊ฐ’์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. Add๋Š” ํ•ฉ๊ณ„๋ฅผ, Main์€ Integer 11์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Common.bas๋Š” ํ˜ผ์ž ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Common.bas

Option Explicit On
FUNCTION Add(ByVal left, ByVal right)
    RETURN left + right
END FUNCTION

2. ์ค‘์ฒฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

# Main.bas๋Š” lib/Route.bas๋ฅผ ํฌํ•จํ•˜๊ณ  ์ด ํŒŒ์ผ์€ ์ž์‹ ์˜ lib ํด๋”์—์„œ Math.bas๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. Distance(-3, 5)๋Š” dx=-3, dy=5๋ฅผ Manhattan์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. Abs๊ฐ€ ๋ถ€ํ˜ธ๋ฅผ ์ œ๊ฑฐํ•ด ํ•ฉ๊ณ„ Integer 8์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์บ๋ฆญํ„ฐ๋ฅผ ์›€์ง์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Option Explicit On
Include "lib/Route.bas"
SUB Main()
    RETURN Distance(-3, 5)
END SUB

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์‹คํ–‰ ์„ค๋ช…:

Main.bas๋Š” lib/Route.bas๋ฅผ ํฌํ•จํ•˜๊ณ  ์ด ํŒŒ์ผ์€ ์ž์‹ ์˜ lib ํด๋”์—์„œ Math.bas๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. Distance(-3, 5)๋Š” dx=-3, dy=5๋ฅผ Manhattan์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. Abs๊ฐ€ ๋ถ€ํ˜ธ๋ฅผ ์ œ๊ฑฐํ•ด ํ•ฉ๊ณ„ Integer 8์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์บ๋ฆญํ„ฐ๋ฅผ ์›€์ง์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

lib/Route.bas

Option Explicit On
Include "Math.bas"
FUNCTION Distance(ByVal dx, ByVal dy)
    RETURN Manhattan(dx, dy)
END FUNCTION

lib/Math.bas

Option Explicit On
FUNCTION Manhattan(ByVal dx, ByVal dy)
    RETURN Abs(dx) + Abs(dy)
END FUNCTION

3. ๋ฐ˜๋ณต ํฌํ•จ

# Common.bas์™€ ./Common.bas๋Š” ๊ฐ™์€ ํŒŒ์ผ์ด๋ฏ€๋กœ CONST์™€ ํ•จ์ˆ˜๊ฐ€ ํ•œ ๋ฒˆ๋งŒ ์„ ์–ธ๋ฉ๋‹ˆ๋‹ค. SharedValue=7์ด๋ฉฐ GetShared()๋Š” 7์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Main์€ 2๋ฅผ ๊ณฑํ•ด Integer 14๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ํŒŒ์ผ ๋ชจ๋‘ Option Explicit On์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Option Explicit On
Include "Common.bas"
Include "./Common.bas"
SUB Main()
    RETURN GetShared() * 2
END SUB

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์‹คํ–‰ ์„ค๋ช…:

Common.bas์™€ ./Common.bas๋Š” ๊ฐ™์€ ํŒŒ์ผ์ด๋ฏ€๋กœ CONST์™€ ํ•จ์ˆ˜๊ฐ€ ํ•œ ๋ฒˆ๋งŒ ์„ ์–ธ๋ฉ๋‹ˆ๋‹ค. SharedValue=7์ด๋ฉฐ GetShared()๋Š” 7์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Main์€ 2๋ฅผ ๊ณฑํ•ด Integer 14๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ํŒŒ์ผ ๋ชจ๋‘ Option Explicit On์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Common.bas

Option Explicit On
CONST SharedValue = 7
FUNCTION GetShared()
    RETURN SharedValue
END FUNCTION

en ยท ru ยท uk ยท fr ยท de ยท it ยท es ยท zh-tw ยท ja ยท ko

Basic