Portál AbcLinuxu, 10. května 2025 08:03

Dotaz: C přepis volání bez temp proměnné

13.11.2021 22:11 MilanC | skóre: 16
C přepis volání bez temp proměnné
Přečteno: 447×
Odpovědět | Admin
Ahoj,

vytvořil jsem tento zápis, jelikož mi to nejde sepsat do jednoho příkazu, jako to jde v případě json_object_get_string (vrací char *) níže.
int temp; temp = json_object_get_int(value);  // vrací int
apmib_set(mibid, (void *) &temp);
Toto jde, daná funkce vrací char *
apmib_set(mibid, (void *) json_object_get_string(value));
Je nějaká možnost, jak to zapsat bez té pomocné proměnné? Díky

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (Вherzet)
13.11.2021 22:56 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: C přepis volání bez temp proměnné
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je nějaká možnost, jak to zapsat bez té pomocné proměnné?
Nie.

Pri stringu to ide, lebo pri stringu vracia pointer. A pointery sa môžu vzajomne pretypovať, tj. z const char * na void *).
debian.plus@protonmail.com
Řešení 1× (Gréta)
14.11.2021 20:29 luky
Rozbalit Rozbalit vše Re: C přepis volání bez temp proměnné
Jde: apmib_set(mibid, (int[]){json_object_get_int(value)});
Gréta avatar 13.11.2021 23:01 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: C přepis volání bez temp proměnné
Odpovědět | | Sbalit | Link | Blokovat | Admin

neznáme hlavičky těch fcí:o :O

si ale myslim že ta fungce apmib_set žere nějakej (void *) ukazatel noa to musí bejt nějaká věc strčená někde do paměti. fungce json_get_str asi vrací nějakej const char * a ten je asi uloženej v nějaký struct takže ti to jakoby funguje :O ;D narozdíl vod json_get_int která vrací hodnotou. musíš dotoho nějak strčit ten ukazatel na int kterej musí někde nějak v paměti existovat :D ;D

Zelená energetická soustava založená na obnovitelnejch zdrojích energie versus realnej svět 🤡🇪🇸
14.11.2021 00:26 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: C přepis volání bez temp proměnné
Je to přesně tak. Díky
Řešení 1× (Вherzet)
13.11.2021 23:10 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: C přepis volání bez temp proměnné
Odpovědět | | Sbalit | Link | Blokovat | Admin
Akú ma definíciu apmib_set()? Je to toto?
apmib_set(mibid, (void *) json_object_get_string(value));
Lebo ak je to toto vyššie ako definícia tej funkcie, tak Tvoj zápis nie je logicky správny. Ak je číslo ako string uložené, tak by si ho mal previesť (nerovná sa pretypovať) na čislo (int).
debian.plus@protonmail.com
14.11.2021 00:28 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: C přepis volání bez temp proměnné
Ano. int apmib_set(int id, void *value), https://github.com/Saturn49/wecb/blob/master/rtl819x/users/boa/apmib/apmib.c.

Rozumím, takže není jiné cesty, jak z primitivního dat. typu int udělat pointer. Díky
Řešení 1× (Gréta)
14.11.2021 20:31 luky
Rozbalit Rozbalit vše Re: C přepis volání bez temp proměnné
Rozumite tomu spatne, muzete is udelat anonymni pole pomoci (typ[]){hodnota}

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.