To je ista stvar zašto je ++i brže od i++. Ali je razlika toliko minorna da se programer time ne bi trebao zamarati. Nemam ja ništa protiv samo 0, ali osobno se s '\0' lakše snalazim u kodu.
[C] brojač u C-u
Moderator/ica: Moderatori/ce
Pravila foruma
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
- 4ndY
- Moderator
- Postovi: 4060
- Pridružen/a: 15 svi 2008, 18:05
- Spol: M
- OS: Fedora/KDE
- Lokacija: Hamburg, DE
- Kontakt:
Re: brojač u C-u
Pa onda to sigurno kompajler radi i opet ne moram brinut 
To je ista stvar zašto je ++i brže od i++. Ali je razlika toliko minorna da se programer time ne bi trebao zamarati. Nemam ja ništa protiv samo 0, ali osobno se s '\0' lakše snalazim u kodu.
To je ista stvar zašto je ++i brže od i++. Ali je razlika toliko minorna da se programer time ne bi trebao zamarati. Nemam ja ništa protiv samo 0, ali osobno se s '\0' lakše snalazim u kodu.
A neutron walks into a bar; he asks the bartender, 'How much for a beer?' The bartender looks at him, and says 'For you, no charge.'
- DoDo
- Postovi: 1559
- Pridružen/a: 23 sij 2008, 11:51
- Spol: M
- OS: GNOME 3
- Lokacija: ~/Croatia/Zagorje/Radoboj
Re: brojač u C-u
Ne. Prouči malo kako compiler radi i vidla buš da uopće nema veze da li ti napišeš 0, '\0' ili NULL. Preprocesor prije kompajliranja ionako sve pretvori u 0, a kompajler dalje radi svoje.nicky je napisao/la:... (naredba više za izvođenje), a sa 0 nema tog koraka (kraći put).
Otkud ti to? Obje naredbe se prevode u istu instrukciju. Razlika je samo u prioritetu izvođenja: ++i prvo poveća i, a tek onda koristi novu vrijednost, a i++ prvo koristi (staru) vrijednost od i, a tek onda ga poveća.4ndY je napisao/la: To je ista stvar zašto je ++i brže od i++.
Primjer:
Kod: Označi sve
int a[] = {50, 100};
int i=0, j=0;
printf("%d %d", a[++i], a[j++]); --> ispiše se 100 50
printf("\n%d %d", i, j); --> ispiše se 1 1I am NaN, I am a free man!
Započnite svoje Linux iskustvo na http://wiki.open.hr
Re: brojač u C-u
Razlika je kod klasa u c++-u. i++ će napravit novu instancu klase i, dok ++i mijenja postojeću i samo vrati referencu na nju. Pa ako je i neka ogromna klasa razlika se osjeti.
Avoid the Gates of Hell. Use Linux!
- nicky
- Site Admin
- Postovi: 2074
- Pridružen/a: 07 pro 2007, 16:30
- Spol: Ž
- OS: ubuntu 12.04
- Lokacija: Zagreb
Re: brojač u C-u
- 4ndY
- Moderator
- Postovi: 4060
- Pridružen/a: 15 svi 2008, 18:05
- Spol: M
- OS: Fedora/KDE
- Lokacija: Hamburg, DE
- Kontakt:
Re: brojač u C-u
Sorry, zaboravio sam da se tu radi samo o Cpp-u, kao što je naveo tartaglia. U C-u obje stvari idu u INC.DoDo je napisao/la: Otkud ti to? Obje naredbe se prevode u istu instrukciju.
No sve u svemu i ako u Cpp-u testirate u for petlji koliko je razlika -> prezanemariva (s time da se mora pazit da kompajler ne koristi nikakve optimizacije)
A neutron walks into a bar; he asks the bartender, 'How much for a beer?' The bartender looks at him, and says 'For you, no charge.'
- DoDo
- Postovi: 1559
- Pridružen/a: 23 sij 2008, 11:51
- Spol: M
- OS: GNOME 3
- Lokacija: ~/Croatia/Zagorje/Radoboj
Re: brojač u C-u
Aha, tak već da, ali samo ako je i instanca neke klase koja ima implementiranu funkciju operator+ (ili operator+= - ne znam točno jer ne koristim te stvari u c++-u).tartaglia je napisao/la:Razlika je kod klasa u c++-u. i++ će napravit novu instancu klase i, dok ++i mijenja postojeću i samo vrati referencu na nju. Pa ako je i neka ogromna klasa razlika se osjeti.
Slažem se!4ndY je napisao/la:Po meni se time ne treba zamarati, jer se onda obično potroši vrijeme koje bi se bolje potrošilo za bitnije probleme.
I am NaN, I am a free man!
Započnite svoje Linux iskustvo na http://wiki.open.hr