Today
-
Yesterday
-
Total
-
  • ์˜ˆ์•ฝ์–ด๋ฅผ defineํ•ด๋ฒ„๋ฆฌ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ
    Soliloquy 2020. 8. 23. 02:58

     

    ๐Ÿ’ป

     

    ๊ณผ๊ฑฐ ์ธํ„ฐ๋„ท์—์„œ C์–ธ์–ด๋กœ ๊ฐœ๋ฐœ์ž๋ฅผ ๊ดด๋กญํžˆ๋Š” ๋ฒ•์ด๋ผ๋Š” ๊ธ€์„ ๋ณด๋‹ค๊ฐ€ #define break return 0์œผ๋กœ ๊ดด๋กญํž ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์˜ˆ์•ฝ์–ด break๋Š” define์œผ๋กœ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™์œผ๋ฉด์„œ๋„ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ํ˜น์‹œ๋‚˜ ์‹ถ์–ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์งœ์„œ ์˜จ๋ผ์ธ ์ปดํŒŒ์ผ๋Ÿฌ์— ์ž‘์„ฑ์„ ํ•œ ๋’ค ์‹คํ–‰์‹œ์ผœ ๋ณด์•˜๋‹ค. ์‹ ๊ธฐํ•˜๊ฒŒ๋„ ์ •๋ง๋กœ ์˜ˆ์•ฝ์–ด๋ฅผ define์œผ๋กœ ์ˆ˜์ •์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

     

    #include <stdio.h>
    #define break printf("Couldn't escape!\n")
    
    int main(void) {
     int i = 5;
     while(i){
       break;
       i--; }
    }

    ์ž‘์„ฑํ•œ ์ฝ”๋“œ

     

    clang version 7.0.0-3~ubuntu0.18.04.1 (tags/RELEASE_700/final)
    >> clang-7 -pthread -lm -o main main.c
    >> ./main
    Couldn't escape!
    Couldn't escape!
    Couldn't escape!
    Couldn't escape!
    Couldn't escape!

    ์‹คํ–‰ ๋‚ด์šฉ[๊ฐ์ฃผ:1]

     

    ํ˜น์—ฌ๋‚˜ char ๊ฐ™์€ ๋ฐ์ดํ„ฐ ํ˜•์„ ์ •ํ•˜๋Š” ์˜ˆ์•ฝ์–ด๋„ #define์ด ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•ด์„œ ์‹œ๋„๋ฅผ ํ•ด๋ดค๋Š”๋ฐ, ์˜ˆ์ƒ๋Œ€๋กœ ์ž˜ ๋๋‹ค. ์•„๋งˆ๋„ define์€ ์ปดํŒŒ์ผ์„ ํ•˜๊ธฐ ์ „ ๋ฌธ์ž๋ฅผ ๋‹จ์ˆœํžˆ ๊ต์ฒดํ•ด ์ฃผ๋Š” ํ˜•ํƒœ๋กœ ์ž‘๋™์„ ํ•ด์„œ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™๋‹ค. [๊ฐ์ฃผ:2]

     

    #include <stdio.h>
    #define char printf("Char was changed!\n")
    
    int main(void) {
     char;
    }

    char์„ ์ƒˆ๋กœ์ด define ํ•ด ๋ณด์•˜๋‹ค. ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” "Char was changed!"๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

     

    ์ตœ๊ทผ ํŒŒ์ด์ฌ์— ๊ด€ํ•œ ๊ฐ•์˜๋ฅผ ๋“ฃ๋‹ค๊ฐ€, ํŒŒ์ด์ฌ์˜ ํด๋ž˜์Šค์˜ ์ƒ์†์— ๊ด€ํ•ด์„œ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ํด๋ž˜์Šค์˜ ์ƒ์†์€ ์ž์‹ ํด๋ž˜์Šค์—์„œ super().'๋ถ€๋ชจ ํด๋ž˜์Šค ๋งค์†Œ๋“œ๋ช…'์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋ฌธ๋“ ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „ super() ํ•จ์ˆ˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ define ํ•ด๋ฒ„๋ฆฌ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ์ง€ ๊ถ๊ธˆํ–ˆ๋‹ค. [๊ฐ์ฃผ:3]

     

    ์ปดํŒŒ์ผ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š” C์–ธ์–ด์—์„œ๋Š” ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ณผ์ •์—์„œ ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ๋ฐ”๋€Œ๊ฒŒ ๋˜์–ด์„œ ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐ์€ ํ•˜๋Š”๋ฐ, ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์ธ ํŒŒ์ด์ฌ์—์„œ๋Š” ๊ณผ์—ฐ ์–ด๋–จ๊นŒ? ์‹ถ์–ด์„œ ์˜จ๋ผ์ธ ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ์‹คํ–‰์‹œ์ผœ ๋ณด์•˜๋‹ค. ๊ฒฐ๊ณผ๋Š” C์–ธ์–ด์ผ ๋•Œ์™€ ๋™์ผํ–ˆ๋‹ค. super()๋ฅผ ๋งˆ์Œ๋Œ€๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

     

    def super():
        print('Super() was changed!')
        exit()
    
    class Country:
        """Super Class"""
        def __init__(self):
            print('Superclass ran success!')
    
    class Korea(Country):
        """Sub Class"""
    
        def __init__(self):
            super().__init__()
            print('Subclass ran success!')
    
    a = Korea()

    ๋‚ด๊ฐ€ ์‹คํ–‰ํ•œ ์ฝ”๋“œ

     

    Python 3.8.2 (default, Feb 26 2020, 02:56:10)
    Super() was changed!
    repl process died unexpectedly:

    ์‹คํ–‰ ๊ฒฐ๊ณผ

     

    ์ธํ„ฐ๋„ท์„ ์ฐพ์•„๋ณด๋‹ˆ super()์€ ํŒŒ์ด์ฌ์˜ ์˜ˆ์•ฝ์–ด์— ํฌํ•จ๋˜์ง€ ์•Š์•˜๋‹ค. ํ˜น์‹œ๋‚˜ ํŒŒ์ด์ฌ์˜ ์˜ˆ์•ฝ์–ด๋„ ํ•จ์ˆ˜๋กœ ์‚ฌ์šฉ์ด ๋  ์ˆ˜ ์žˆ์„๊นŒ?๋ผ๋Š” ์ƒ๊ฐ์— ์‹œ๋„๋ฅผ ํ•ด ๋ณด์•˜๋Š”๋ฐ, ์ž˜๋ชป๋œ ๊ตฌ๋ฌธ์ด๋ผ๋Š” ์—๋Ÿฌ๊ฐ€ ๋‚˜์™”๋‹ค. ํŒŒ์ด์ฌ์€ ์ผ๋ฐ˜์ ์ธ ํ™˜๊ฒฝ์—์„œ๋Š” ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์„œ ๊ทธ๋Ÿฐ๊ฐ€ ๋ณด๋‹ค.

     

    def break():
      global = 1
      
    
    for a in range(2) :
      print("test")
      break

    ์‹คํ–‰ ์ฝ”๋“œ

     

      File "main.py" line 1
        def break():
            ^
    SyntaxError: invalid syntax

    ์‹คํ–‰ ๊ฒฐ๊ณผ

     

     

    ์—ฌ๋‹ด

    ์ธํ„ฐ๋„ท์„ ์ข€ ๋” ์ฐพ์•„๋ณด๋‹ˆ ์•„์ง ์‹คํ—˜ํ•ด ๋ณด์ง€ ์•Š์•˜์ง€๋งŒ, ํŒŒ์ด์ฌ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉ/๋ฐฐํฌํ•  ๋•Œ์— ์ „์ฒ˜๋ฆฌ๊ธฐ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง์„ ์ฐพ์•˜๋‹ค.  docs.python.org/2.0/dist/node13.html.

     

     

    [๋Œ€ํ‘œ ์ด๋ฏธ์ง€]

     

    Image by Christopher Kuszajewski from Pixabay

     

     

     

    1. repl.it ์˜จ๋ผ์ธ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์‹คํ–‰ํ–ˆ๋‹ค. [๋ณธ๋ฌธ์œผ๋กœ]
    2. ์ฐธ๊ณ : www.programiz.com/c-programming/c-preprocessor-macros [๋ณธ๋ฌธ์œผ๋กœ]
    3. super()๋„ ์˜ˆ์•ฝ์–ด์ธ ์ค„ ์•Œ์•˜๋Š”๋ฐ, ์˜ˆ์•ฝ์–ด๊ฐ€ ์•„๋‹ˆ์—ˆ๋‹ค... ์ฐธ๊ณ : www.programiz.com/python-programming/keyword-list [๋ณธ๋ฌธ์œผ๋กœ]

    ๋Œ“๊ธ€

์–ด์ œ๋Š” ์ด๊ณณ์— ๋ช…์ด ๋‹ค๋…€๊ฐ”์Šต๋‹ˆ๋‹ค.

Powered & Designed by Tistory