Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet C-ben egy függvén...

Ozmium42 kérdése:

Hogyan lehet C-ben egy függvényt "felülírni"?

Figyelt kérdés

Tegyük fel, hogy van egy deklarált func1 függvény;


int func1(int a; int b);


Meg egy "rendesen" megírt függvény:


int func2(int a, int b) {valami;}


Mit kell csinálni, hogy a func1 felülíródjon a func2-vel, és ha a func1-et hívom, akkor az történjen, mintha func2-t hívnám?


Bocsánat, ha retardáltság a kérdés, csak pythonhoz vagyok szokva. Próbálkoztam, és googliztam is, de nem találtam semmit.


2019. jún. 18. 22:16
1 2
 1/20 anonim ***** válasza:

int func1(int a, int b) {


func2(a, b);


}

2019. jún. 18. 22:18
Hasznos számodra ez a válasz?
 2/20 A kérdező kommentje:

"Mit kell csinálni, hogy a func1 felülíródjon a func2-vel, és ha a func1-et hívom, akkor az történjen, mintha func2-t hívnám?"


Fordítva.

2019. jún. 18. 22:20
 3/20 anonim ***** válasza:
55%
Felülírás nincsen C-ben
2019. jún. 18. 22:23
Hasznos számodra ez a válasz?
 4/20 A kérdező kommentje:

Ez a megoldás csak akkor működne, ha eleve így lenne megírva. Én olyan megoldást keresek, ami felülírja func1-t func2-vel, miután ez a kódrészlet már lefutott.


int func1(int a; int b);

int func2(int a, int b) {valami;}

2019. jún. 18. 22:25
 5/20 A kérdező kommentje:
Egy változót felül lehet írni, és a függvényeknek is van pointere. Egy létező függvény pointerét nem lehet kicserélni egy másik függvény pointerére?
2019. jún. 18. 22:27
 6/20 anonim ***** válasza:

C-ben nem vagyok otthon, de régen hasonló nyelvvel foglalkoztam ahol voltak preprocessorból adódóan macrók

nézz utána a preprocesszornak és a macronak, de lehet kb ennyi elég is


#define func1 func2

2019. jún. 18. 22:29
Hasznos számodra ez a válasz?
 7/20 anonim ***** válasza:
akkor ezt mondd: függvénypointerekkel meg lehet oldani, de nagyon nem szép megoldás. Általában ha ilyet akarsz használni, az hibás tervezésre vall. Ha valami eset alapján kéne meghívni, akkor switch-case, satöbbi...
2019. jún. 18. 22:36
Hasznos számodra ez a válasz?
 8/20 anonim ***** válasza:
#6: a prepocessor makró azért nem működik, mert az fordítási időben cserélődik be, és a kérdező futásidőben akarja ("miutána lefutott")
2019. jún. 18. 22:37
Hasznos számodra ez a válasz?
 9/20 anonim ***** válasza:
hát a kérdező szavaiból nem annyira egyértelmű, hogy preprocessoros megoldás, vagy code injection kell e neki :D
2019. jún. 19. 00:11
Hasznos számodra ez a válasz?
 10/20 anonim ***** válasza:
45%
De jók is az ilyen gányolások, mikor valaki a haját tépi már, hogy megfejtse mi a rossebb történik a kódban.
2019. jún. 19. 07:16
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!