ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ goto β ΡΠΆΠ°ΡΠ½Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ (Ρ ΠΈΡ Π½Π΅ Π²ΠΈΠΆΡ), Π½ΠΎ, ΡΠ°Π΄ΠΈ Π±ΠΎΠ³Π°, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ .
ΠΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊ ΡΠ°ΠΉΠ» RIOT/blob/master/examples/gcoap/gcoap_cli.c, Π² ΡΡΡΠΎΠΊΠ΅ 139 ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ goto statememt, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ ΠΌΠ΅ΡΠΊΠΎΠΉ end: (Π²ΡΠ΅Π³ΠΎ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ).
Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° gcoap Π²Ρ, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΏΡΠ°Π²Ρ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π² RIOT ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 30 (Ρ ΡΠ΅ΠΌ-ΡΠΎ) ΡΠ»ΡΡΠ°Π΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ goto, ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ ΡΡΠΎ (Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° IoT, ΡΡΠΎ ΡΠΈΡΠ»ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ°Π»ΠΎ.
ΠΠΎΡΡΠΎΠΌΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ PR, ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ gcoap, Π½ΠΎ Π² ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ Ρ Π½Π΅ Π²ΠΈΠΆΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ (ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ).
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ goto β ΡΠΆΠ°ΡΠ½Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΎ ΡΠΏΠΎΡΠ½ΠΎ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ goto Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π² C ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΡΠΈΡΠ°Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π΅ΠΌΠΎΠΌΡ ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Π½ΠΎΠΌΡ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΠΊΠΎΠ΄Ρ.
gcoap_cli.c, Π² ΡΡΡΠΎΠΊΠ΅ 139 ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ goto statememt, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ ΠΌΠ΅ΡΠΊΠΎΠΉ end: (Π²ΡΠ΅Π³ΠΎ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ).
ΠΡ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ² printf?
ΠΡ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ² printf?
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ if .. else if ... else
, ΠΈΠ·Π±Π΅Π³Π°Ρ goto
, Π½Π΅ Π²Π»ΠΈΡΡ Π½Π° ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ, ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ
ΡΠ»ΡΡΠ°ΡΡ
, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ goto
.
ΠΡ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ² printf?
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ...
ΠΠΎΠ½Π΅ΡΠ½ΠΎ. Π― Ρ ΠΎΡΠ΅Π» ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΡΡΠΎΠΊ Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ.
Π Π΅ΡΡ Π½Π΅ ΠΈΠ΄Π΅Ρ ΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠΈ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄ΠΎΠ². Π Π΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Ρ ΠΎΡΠΎΡΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°Ρ ΠΊΠΎΠ΄Π°. ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ goto Π²ΠΌΠ΅ΡΡΠΎ if...else.... ΡΠΎΠ³Π΄Π° "ΡΡΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π²ΡΠ΅Π΄Π½ΡΠΌ"