Új hozzászólás Aktív témák
-
btraven
őstag
float f1 = 1.6f;
Ez hogy van fájlban kiírva? Milyen bájtok? Vagy teljesen implementáció függő?
Át szeretném hackelni egy játék fájljában egy kard erejét -
buherton
őstag
Lenne egy számomra fogós kérdés.
Az alábbi kódrészletben miért biztos mindenki, hogy a pointer majd az inkrementált címre fog mutatni az értékadáskor az alábbi kódrészletben?
*p++ = 1;
Keresem az okot a miértre, de őszintén nem találom. Annyit sikerült kideríteni, hogy nem a precedencia az ok.
A C99 szabványban (alább a részletek) úgy értelmezem, hogy ténylegesen bármikor megtörténhet két sequence point között.
Ráadásul ez a leírás is csak ráerősít arra, hogy az order unspecified: [cpp reference - Order of evaluation]
Segítene valaki felhomályosítani ebben az ügyben?
[ Szerkesztve ]
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
sztanozs
veterán
válasz buherton #6370 üzenetére
[link]
Precedence:
1) ++ (postfix increment)
2) * (dereference)
3) = (assignment)Order of ops (evaluation):
a = b (azaz balról jobbra)[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
buherton
őstag
válasz sztanozs #6371 üzenetére
Köszi! A második link nem megy.
Ebben az esetben pedig verseny helyzet lesz?
int main() {
static int num = 6;
printf("%d ",num--);
if(num)
main();
return 0;
}
Ezt lefuttatva 6 5 4 3 2 1-t ír ki, de nem lennék meglepve, ha máshol ugyanez 5-el kezdődne.tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
kovisoft
őstag
válasz buherton #6372 üzenetére
Az általad korábban linkelt szövegrészben is ez van:
"The result of the postfix ++ operator is the value of the operand. After the result is obtained, the value of the operand is incremented."
Nyilván a -- operátorra ugyanez igaz. Azaz teljesen egyértelmű a dolog: először kiolvassa num értékét (ezt fogja átadni a printf-nek), és csak ezután fogja csökkenteni num-ot. Ezért először 6-ot fog kiírni.
[ Szerkesztve ]
-
buherton
őstag
válasz kovisoft #6373 üzenetére
Úgy érzem, hogy ezt nem fogom megérteni soha. Évek óta nem nyúltam C kódhoz csak C++-hoz, de annak is már 2 éve. Bár ezekkel akkor sem voltam tisztában.
Ráadásul rettenetesen bosszant az, hogy több C kvízes oldalon vannak hibás feladványok. Az egyik típus hiba az volt, hogy a függvény int-t várt és rendbe ott volt az if, hogy csak 0-nál nagyobb számokkal foglalkozzon. Negálás sehol nem volt, vagyis negatív számokra nem működik jól a függvény. A másik típus hiba az, hogy a két sequence point között csak egyszer lehet az értéket módosítani. Illetve volt még olyan is, hogy singed negatív számot akart shiftelni, ami undefined.
struct player
{
char pname[20];
}pl;
char* play(struct player *temp_pl)
{
strcpy(temp_pl->pname, "kohli");
return temp_pl->pname;
}
int main()
{
strcpy(pl.pname, "dhoni");
printf("%s %s", pl.pname, play(&pl));
return 0;
}Ez is egy kvíz, ahol nincs olyan opció, hogy undefined. Undefined-nak gondolom, mert a függvény paraméter kiértékelés sorrendje nincs leírva a szabványban.
[ Szerkesztve ]
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
buherton
őstag
válasz dabadab #6375 üzenetére
A play() nem strcpy-zi be a "kohli" stringet a pl.pname-be? Mármint végeredményben nem ugyanarra a memória területre fognak hivatkozni?
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
-
buherton
őstag
válasz dabadab #6377 üzenetére
És tényleg. Köszi!
Egyre inkább tartok a szerdai interjútól... Ha ilyeneket fognak kérdezni, akkor aligha hiszem, hogy felvesznek senior pozícióba.
[ Szerkesztve ]
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
Elkezdtem belekontárkodni a C nyelv tanulásába és van valami, amit nem értek a bitwise complementer operatornál:
int a = 10; /* 10 = 1010 */
int c = 0;
c = ~(a);
printf(c);
Output:
-11
Namost, ha jól értem, a fenti operator a biteket flippeli, vagyis a 0-ból 1, az 1-ből 0 lesz, azaz a fenti 10-es decimális értékből nem -11-nek kellene lennie, hanem 5-nek. Ebből számomra az következik, hogy van itt még valami, amiről nem tudok.
Mi az, hogy jön ki a -11? Forrás
[ Szerkesztve ]
https://www.coreinfinity.tech
-
Köszönöm a válaszokat, így már világos.
https://www.coreinfinity.tech
-
btraven
őstag
Van Dos-os EXE fájlom. Vissza lehet szedni belőle a C programkódot?
Addig sejtem hogy disassembler-rel assembly-t lehet csinálni. De azzal nem vagyok kisegítve. -
buherton
őstag
válasz btraven #6385 üzenetére
Mi a cél?
Értelmes kódot nem fogsz visszakapni, maximum a hablagyot olvashatod C syntaxszal.
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
btraven
őstag
válasz sztanozs #6388 üzenetére
A térkép külön adatfájlban van. A térképeket sikerült is kirajzolnom programmal, csak a rajta levő speciális helyeket nem. Mint üzenetek, teleportok, fel/lejárat stb. Pedig az is fontos lett volna.
De mindegy is mert a játék közben olyan bugos lett hogy elfogyott a türelmem és feladtam. -
cog777
senior tag
Mint c++ fejleszto, lenne par kerdesem c-vel kapcsolatban. Eleg regen foglalkoztam c-vel, most kaptam par feladatot, kapasbol a c++-os mintak jutottak eszembe, de aztan felvetodott bennem, hogyan oldanam meg a feladataimat c-ben?
Egyik feladat igenyli a dependency injection-t, amikor egy kliens kod hasznalni akar valamilyen implementaciot, pl driver-t.
Ekkor c++-ban csinalok egy interface osztalyt, majd abbol orokoltetem. Az interface osztalyon keresztul at lehet adni a driverA-t es a driverB-t is. Helyzettol fuggoen.
Na most, c-ben ezt hogy lehetne megoldani?
Alap esetben csinalnek egy csomo fuggvenyt ami a driver-t elinditja, es ezek a fuggvenyek ertelemszeruen elerhetok lennenek. De ilyenkor nem tudom barmikor kicserelni a driver funkcioit a kliensben hacsak at nem irom...
Esetleg atadok egy strukturat, amiben fuggvenyre mutato pointerek vannak es azt meg a kliens inicializalasa elott feltoltom annak megfeleloen hogy vagy a driverA, vagy driverB-nek a funkcioit akarom hasznalni a kliensben?
Remelem ertheto a problemam... szoval mi lehet a "dependency injection" c-ben?HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian
-
dabadab
titán
Én a magam részéről a struktúrás függvénypointeres megoldást csinálnám (csináltam).
Ami nagyobb C projekteket láttam, ott is ez köszönt vissza, kicsit úgy nézetek ki, mintha egy régi g++ kimenetét láttam volna, ami még a C++ kódból C-t generált és a függvények első paramétere tulajdonképpen a this volt.DRM is theft
-
buherton
őstag
válasz dabadab #6393 üzenetére
Van más értelmes alternatíva erre? Szerintem nincs.
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
buherton
őstag
Igen, de az elég macera.
Ezt szerettem volna kipróbálni: [cmock], de még nem volt időm.
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Automobilista 2
- Samsung Galaxy Z Fold5 - toldozás-foldozás
- Hogy is néznek ki a gépeink?
- Fényképeken a Google Pixel 9 Pro
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Androidos tablet topic
- Acer Nitro V 15 notebook: amikor a jó ár-érték arány a cél
- Windows 10
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...