Stránka 1 z 1
Volání funkce s argumentem
Napsal: 04 črc 2011 16:35
od Zeppelin
Ahoj, jak prosím zavoláte funkci s dvěma argumenty?
Tady je vymyšlený příklad. Takhle to ale nefunguje

Děkuju moc.
int One(int a, int b)
{
Two(int a = 5, int b = 7); // Zavolá funkci "Two" a předá jí hodnoty "a" a "b"
}
int Two(int a, int b)
{
a + b; // Tady sečte 5 + 7
}
Ty komentáře sdělují co bych chtěl a ne co to skutečně dělá
Re: Volání funkce s argumentem
Napsal: 04 črc 2011 19:20
od General
Kód: Vybrat vše
int One(int a, int b) {
return Two(a, b);
}
int Two(int a, int b) {
return a + b;
}
int i = One(5, 7); //do proměnný "i" uloží 12
Takhle si to myslel?

Re: Volání funkce s argumentem
Napsal: 04 črc 2011 20:11
od Zeppelin
Nejsem si jistý že je to ono-já potřebuju zavolat funkci a předat jí hodnotu dvou proměnných-tohle to není ne?
Re: Volání funkce s argumentem
Napsal: 04 črc 2011 20:30
od faraon
Takže chceš aby funkce One předala funkci Two to co dostala do argumentů? A co pak udělá s vráceným výsledkem?
Kód: Vybrat vše
int two(int a,int b)
{
return a+b;
}
Kód: Vybrat vše
int one(int a,int b)
{
int c;
c=two(a,b);
/* zpracovat c? */
return c;
}
Kód: Vybrat vše
int main(void)
{
int x;
x=one(5,7);
printf("%d\n",x);
return 0;
}
Re: Volání funkce s argumentem
Napsal: 04 črc 2011 20:45
od Zeppelin
int a = 5; // Počáteční hodnota
int b = 7; // Počáteční hodnota
int One(int a, int b)
{
a++; // Tady se inkremnetuje proměnná a
b++; // Tady se inkremnetuje proměnná b
x = a + b; // Tady máme x = 6 + 8
Two(int a = 2, b = 4); // Tady voláme funkci Two s tím, že jí předáme jiné hodnoty obou proměnných
}
Nebo mám udělat? :
int a = 5; // Počáteční hodnota
int b = 7; // Počáteční hodnota
int One(int a, int b)
{
a++; // Tady se inkremnetuje proměnná a
b++; // Tady se inkremnetuje proměnná b
x = a + b; // Tady máme x = 6 + 8
a = 2;
b = 4;
Two(int a, int b); // Tady voláme funkci Two s tím, že jí předáme jiné hodnoty obou proměnných
}
Re: Volání funkce s argumentem
Napsal: 04 črc 2011 21:09
od faraon
V programu funkci voláš takhle:
vysledek=Two(a,b)Nic víc není potřeba, hodnoty už máš v obou proměnných uložené, a jejich typ je udaný v deklaraci funkce, takže ho přece nebudeš vypisovat v každém volání, to bys to tam mohl mít také stokrát

Dokonce bys mohl napsat:
vysledek=Two(++a,++b)Program by nejdřív inkrementoval obě proměnné, a teprve pak by s nimi zavolal tu funkci.
Re: Volání funkce s argumentem
Napsal: 04 črc 2011 22:06
od Zeppelin
OK, díky moc.