Riot: goto μ‚¬μš©μ„ ν”Όν•˜μ„Έμš”.

에 λ§Œλ“  2017λ…„ 07μ›” 06일  Β·  6μ½”λ©˜νŠΈ  Β·  좜처: RIOT-OS/RIOT

gotoλ₯Ό μ‚¬μš©ν•˜λŠ” 것은 λ”μ°ν•œ ν”„λ‘œκ·Έλž˜λ° κ΄€ν–‰μž…λ‹ˆλ‹€. 핡심 μ½”λ“œμ—μ„œ μ‚¬μš©ν•˜λ©΄ λͺ‡ 가지 이점이 μžˆμ„ 수 μžˆμ§€λ§Œ(λ‚˜λŠ” λ³Ό 수 μ—†μŒ), μ˜ˆμ œμ—μ„œλŠ” μ‚¬μš©ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€.

λ‚΄ 주의λ₯Ό 끈 νŒŒμΌμ€ RIOT/blob/master/examples/gcoap/gcoap_cli.c둜, 139행에 goto statememtκ°€ 있으며, 이 νŒŒμΌμ€ end:(단 2쀄)λΌλŠ” λ ˆμ΄λΈ” μ•„λž˜μ˜ μ½”λ“œλ‘œ κ°„λ‹¨νžˆ λŒ€μ²΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

contested minor cleanup

λͺ¨λ“  6 λŒ“κΈ€

gcoap 예의 경우 당신이 ν™•μ‹€νžˆ μ˜³μŠ΅λ‹ˆλ‹€. λ°˜λ©΄μ— RIOTμ—μ„œ gotoλŠ” (μž„λ² λ””λ“œ) IoT 운영 μ²΄μ œλΌλŠ” 점을 κ°μ•ˆν•  λ•Œ μ „μ²΄μ μœΌλ‘œ μ•½ 30(무언가) μ‚¬μš©λ˜μ—ˆμœΌλ©° κ·Έ μˆ˜λŠ” λ‹€μ†Œ μ μŠ΅λ‹ˆλ‹€.

λ”°λΌμ„œ gcoap 예제λ₯Ό μˆ˜μ •ν•˜λŠ” PR을 자유둭게 μ œκ³΅ν•˜μ‹­μ‹œμ˜€. ν•˜μ§€λ§Œ 그렇지 μ•ŠμœΌλ©΄ 이것이 문제둜 κ°„μ£Όλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(적어도 ν˜„μž¬λ‘œμ„œλŠ”).

gotoλ₯Ό μ‚¬μš©ν•˜λŠ” 것은 λ”μ°ν•œ ν”„λ‘œκ·Έλž˜λ° κ΄€ν–‰μž…λ‹ˆλ‹€.

그것은 λ…ΌμŸμ˜ 여지가 μžˆμŠ΅λ‹ˆλ‹€. Cμ—μ„œ 였λ₯˜ 처리λ₯Ό μœ„ν•΄ gotoλ₯Ό μ‚¬μš©ν•˜λŠ” 것은 μ’…μ’… 더 읽기 쉽고 였λ₯˜κ°€ λ°œμƒν•˜κΈ° μ‰¬μš΄ μ½”λ“œλ‘œ 이어지기 λ•Œλ¬Έμ— λ§Žμ€ μ‚¬λžŒλ“€μ—κ²Œ 쒋은 κ΄€ν–‰μœΌλ‘œ κ°„μ£Όλ©λ‹ˆλ‹€.

139번째 쀄에 goto statememtκ°€ μžˆλŠ” gcoap_cli.cλŠ” end: λ ˆμ΄λΈ” μ•„λž˜μ— μžˆλŠ” μ½”λ“œλ‘œ κ°„λ‹¨νžˆ λŒ€μ²΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€(단 두 쀄).

printf ν˜ΈμΆœμ„ λ³΅μ œν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ?

printf ν˜ΈμΆœμ„ λ³΅μ œν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ?

goto κ°€ μ‚¬μš©λ˜λŠ” λͺ¨λ“  κ²½μš°μ— κ°€λŠ₯ν•œ 것은 μ•„λ‹ˆμ§€λ§Œ 가독성에 영ν–₯을 주지 μ•Šκ³  goto $λ₯Ό ν”Όν•˜λ©΄μ„œ $ if .. else if ... else λ₯Ό μ‚¬μš©ν•˜μ—¬ μ½”λ“œλ₯Ό μ‰½κ²Œ μž¬μž‘μ—…ν•  수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

printf ν˜ΈμΆœμ„ λ³΅μ œν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ?
μ½”λ“œλŠ” λ‹€μŒμ„ μ‚¬μš©ν•˜μ—¬ μ‰½κ²Œ μž¬μž‘μ—…ν•  수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

ν™•μ‹ ν•˜λŠ”. 두 쀄을 λ³΅μ‚¬ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œλŠ” μž˜λ¦¬μ§€ μ•ŠλŠ”λ‹€λŠ” 점을 μ§€μ ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€.

μ½”λ“œ 쀄을 μ€„μ΄λŠ” 것이 μ•„λ‹™λ‹ˆλ‹€. 가독성과 쒋은 μ½”λ“œ 관행에 κ΄€ν•œ κ²ƒμž…λ‹ˆλ‹€. if...else.... λŒ€μ‹  gotoκ°€ μ‚¬μš©λ˜λ©΄ "μœ ν•΄ν•œ κ²ƒμœΌλ‘œ κ°„μ£Όλ©λ‹ˆλ‹€"

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰