Új hozzászólás Aktív témák
-
tototos
addikt
válasz
buherton #3824 üzenetére
És olyat nem lehet hogy ne a fv visszatérési értéke legyen a változó?
ilyenre gondolok:
valami.c:
fooTypeDef localfoo;
void set(const fooTypeDef * const foo)
{
foo.ifoo=0; //ez csak egyszer hívódik meg
}
void get(const fooTypeDef ** const foo)
{
localfoo.cfoo = a+b; //ez az értékadás minden hívásnál megtörténik
*foo= &localfoo;
}
main.c //ezt hívják majd a fejlesztők
footypedef* myfoo;
get(&myfoo);
myfoo->ifoo = 5; //erre vagy hiba vagy ne hajtódjon végre
myfoo->cfoo = 4; // ez annyira nem nagy hiba mert a legközelebbi hívásnál úgyis felülíródik -
buherton
őstag
válasz
buherton #3824 üzenetére
Ami kimaradt: így a get függvények belül egyik adattagot sem lehet írni, csak és kizárólag olavsni. Az set-get-es függvényeknek azaz előnyük, hogy szabadon lehet változtatni az összes adattagját, viszont get a függvénnyel egyesével tudsz értékeket olvasni. Kivéve ha nem kókányolsz íly módon:
#include <stdlib.h>
#include <stdio.h>typedef struct
{
int ifoo;
char cfoo;
} fooTypeDef;int get(const fooTypeDef * const foo, int * const ibar, char * const cbar)
{
*ibar = sfoo->ifoo;
*cbar = sfoo->cfoo;
}int main(void)
{
fooTypeDef sfoo;sfoo.ifoo = 10;
sfoo.cfoo = 'a';int ibar;
char cbar;get(&sfoo, &ibar, &cbar);
printf("%i %c", ibar, cbar);return 0;
}Vagy valami ilyesmi lesz.
Ú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!
- ÚJ ÁRU 09.25. !!! HP üzleti laptopok Elitebook, Probook, Zbook 8-13. gen gar.
- GYÖNYÖRŰ iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3332
- AKCIÓ! Sony PlayStation 5 Slim 1TB SSD lemezes konzol garanciával hibátlan működéssel
- GYÖNYÖRŰ iPhone 13 mini 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2159
- GYÖNYÖRŰ iPhone SE 2022 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS3367, 91% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest