Implicitně nastavené členy struktury. – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Implicitně nastavené členy struktury. – C / C++ – Fórum – Programujte.comImplicitně nastavené členy struktury. – C / C++ – Fórum – Programujte.com

 

Midnight
~ Anonymní uživatel
78 příspěvků
27. 9. 2009   #1
-
0
-

Zdravím!

Mám menší problém, potřeboval bych implicitně nastavit členy struktury za pomoci funkce, ale nevím jak. Potřeboval bych tedy poradit, jak odkázat na jednotlivé členy. Dejme tomu, že mám takovouto strukturu:



struct structure
{
char name[20];
double weight;
int heigh;
};

prototyp


modify_struct(xxxx);


ve funkci main pak:


structure list;
modify_struct(xxxx);


Staci mi, kdyz mi misto "xxxx" naznacite, jak odkazat na jednotlive cleny, samotnou funkci uz zvladnu.

Děkuji za pomoc.

Nahlásit jako SPAM
IP: 92.62.224.–
Nosko0
Stálý člen
27. 9. 2009   #2
-
0
-

No pokial si dobre pamätám a dobre chápem na čo sa pýtaš, tak na jednotliých členov sa odkazuješ pomocou:

structure list; 

list.name;
list.weight;
list.heigh;


resp

structure *list; 

list->name;
list->weight;
list->heigh;

Nahlásit jako SPAM
IP: 84.16.37.–
KIIV
~ Moderátor
+43
God of flame
27. 9. 2009   #3
-
0
-

To Nosko : taky nechapu na co se pta.. pokud na to jak predat funkci strukturu tak, aby se pri zmene uvnitr funkce zmenila i vne, tak opravdu staci predat ukazatel a pracovat s nim presne jak si napsal ve druhem kodu..
tj. pomoci dereference na clen struktury ->

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Midnight
~ Anonymní uživatel
78 příspěvků
27. 9. 2009   #4
-
0
-

Nene, právě potřebuji, aby jednoltivé členy struktury byly nastaveny implicitně...tedy pokud je vůbec něco takového možné. Když se běžně nastavují členy implicitně, vypadá to nějak takto:

int fce(int n, int m=5, int o=-1);

A to právě potřebuji aplikovat na jednotlivé členy struktury.

Nahlásit jako SPAM
IP: 92.62.224.–
KIIV
~ Moderátor
+43
God of flame
27. 9. 2009   #5
-
0
-

tak ted uz nechapu vubec o co se snazis.. zkus to vysvetlit jeste jednou a polopaticky

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
sputnikone+1
Věrný člen
27. 9. 2009   #6
-
0
-

chce je mít předdefinované :smile1:

Nahlásit jako SPAM
IP: 89.176.157.–
sputnikone+1
Věrný člen
27. 9. 2009   #7
-
0
-

tuším ale, že tohle ISO C nepodporuje

Nahlásit jako SPAM
IP: 89.176.157.–
Grungy0
Super člen
27. 9. 2009   #8
-
0
-

Neviem či to chápem dobre ale snažíš sa asi o niečo podobné ako je konštruktor pri triedach len to chceš mať pri štruktúre. Takže namiesto štruktúry si z toho urob triedu (teda ak ti nevadí použitie c++) a potom môžeš kľudne pri alokovaní vyvolaním príslušného konštruktora nastaviť hodnoty premenných aké len chceš.

Nahlásit jako SPAM
IP: 188.123.100.–
Prvý náznak hlúposti, je pocit geniality.
Midnight
~ Anonymní uživatel
78 příspěvků
27. 9. 2009   #9
-
0
-

Přesně tak, chci, aby jednotlivé členy měli nastavenou hodnotu, pokud jim jí nepřidělím. Taky si právě nejsem jistý, jestli je něco takového možné.

Nahlásit jako SPAM
IP: 92.62.224.–
Midnight
~ Anonymní uživatel
78 příspěvků
27. 9. 2009   #10
-
0
-

To Grungy: C++ mi nevadí, ale třídy budu umět až za dvě lekce, protože se ho právě učím:-D
No dobrá, děkuji za pomoc, mám v tom zase o něco jasněji.

Nahlásit jako SPAM
IP: 92.62.224.–
m->29+6
Super člen
28. 9. 2009   #11
-
0
-

Alebo môžeš využiť malý fígel s makrami ;-)

/* ========================================================================== */

/* */
/* Filename.c */
/* (c) 2001 Author */
/* */
/* Description */
/* */
/* ========================================================================== */
#include <stdio.h>

struct structure {
char name[20];
double weight;
int heigh;
};


#define newStruct(_NamE_) \
struct structure _NamE_ = { \
.name = "Pepek je king!", \
.weight = 29.29, \
.heigh = 29, \
}


int main(void)
{
newStruct(pepek);
puts(pepek.name);
printf("%lf %d", pepek.weight, pepek.heigh);
}

Nahlásit jako SPAM
IP: 147.229.208.–
AdamHlavatovic0
Stálý člen
29. 9. 2009   #12
-
0
-

mozte pouzit aj nasledujuci kod



struct structure
{
char name[20];
double weight;
int heigh;

structure() // implicitny konstruktor
{
strcpy(name, "Anca");
weight = 60;
height = 185;
}
};

Nahlásit jako SPAM
IP: 147.175.158.–
Midnight
~ Anonymní uživatel
78 příspěvků
29. 9. 2009   #13
-
0
-

Skvělý, nějak takhle jsem si to představoval, děkuji moc za kódy.

Nahlásit jako SPAM
IP: 92.62.224.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 85 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý