Sada je: 12 svi 2024, 22:10.
C, C++, Java, PHP, Ruby...

Moderator/ica: Moderatori/ce

Pravila foruma
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
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.
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.'
Avatar
Moderator
Postovi: 4060
Moderator
Postovi: 4060
Pridružen/a: 15 svi 2008, 18:05
Lokacija: Hamburg, DE
Podijelio/la zahvalu: 111 puta
Primio/la zahvalu: 183 puta
Spol: M
OS: Fedora/KDE
nicky je napisao/la:... (naredba više za izvođenje), a sa 0 nema tog koraka (kraći put).


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.

4ndY je napisao/la:To je ista stvar zašto je ++i brže od i++.


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.
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 1
:mrgreen: Smile! It makes people wonder what you're thinking about... :mrgreen:
I am NaN, I am a free man!
Započnite svoje Linux iskustvo na http://wiki.open.hr
Avatar
Postovi: 1559
Postovi: 1559
Pridružen/a: 23 sij 2008, 11:51
Lokacija: ~/Croatia/Zagorje/Radoboj
Podijelio/la zahvalu: 45 puta
Primio/la zahvalu: 18 puta
Spol: M
OS: GNOME 3
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!
Avatar
Postovi: 400
Postovi: 400
Pridružen/a: 13 sij 2009, 12:57
Lokacija: Zagreb
Podijelio/la zahvalu: 0 puta
Primio/la zahvalu: 15 puta
Spol: M
OS: openSuse 11.3
:nee Moja greška, ne procesor nego compiler.
Avatar
Site Admin
Postovi: 2074
Site Admin
Postovi: 2074
Pridružen/a: 07 pro 2007, 16:30
Lokacija: Zagreb
Podijelio/la zahvalu: 174 puta
Primio/la zahvalu: 278 puta
Spol: Ž
OS: ubuntu 12.04
DoDo je napisao/la:Otkud ti to? Obje naredbe se prevode u istu instrukciju.


Sorry, zaboravio sam da se tu radi samo o Cpp-u, kao što je naveo tartaglia. U C-u obje stvari idu u INC.

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) :-) Po meni se time ne treba zamarati, jer se onda obično potroši vrijeme koje bi se bolje potrošilo za bitnije probleme.
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.'
Avatar
Moderator
Postovi: 4060
Moderator
Postovi: 4060
Pridružen/a: 15 svi 2008, 18:05
Lokacija: Hamburg, DE
Podijelio/la zahvalu: 111 puta
Primio/la zahvalu: 183 puta
Spol: M
OS: Fedora/KDE
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.


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).

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.


Slažem se!
:mrgreen: Smile! It makes people wonder what you're thinking about... :mrgreen:
I am NaN, I am a free man!
Započnite svoje Linux iskustvo na http://wiki.open.hr
Avatar
Postovi: 1559
Postovi: 1559
Pridružen/a: 23 sij 2008, 11:51
Lokacija: ~/Croatia/Zagorje/Radoboj
Podijelio/la zahvalu: 45 puta
Primio/la zahvalu: 18 puta
Spol: M
OS: GNOME 3

Na mreži
Trenutno korisnika/ca: / i 3 gostiju.