Hirdetés

Új hozzászólás Aktív témák

  • tototos
    addikt

    Olyat lehet csinálni, hogy senki nem írhat a struktúrába.

    #include <stdlib.h>
    #include <stdio.h>

    typedef struct
    {
    int ifoo;
    char cfoo;
    } fooTypeDef;

    int get(const fooTypeDef * const foo)
    {
    int i = sfoo->ifoo; //működnie kellene, ha csak ez van a függvény törzsben
    sfoo->cfoo = 'd'; // erre viszont hibát kell, hogy dobjon, mert konstans változóba nem lehet írni
    }

    int main(void)
    {
    fooTypeDef sfoo;

    sfoo.ifoo = 10;
    sfoo.cfoo = 'a';
    get(&sfoo);

    return 0;
    }

    Nincs nálam fordító, így nem tudom kirpróbálni, hogy tényleg működik-e.

    Fene a jó dolgod. Szívesen foglalkoznék főállásban ilyennel, csak sajnos más fele vitt a sors. Most is körülöttem ilyennel foglalkoznak csak én más projekten vagyok.

    É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

Új hozzászólás Aktív témák