[C++] Różnica w formułowaniu funkcji ze znacznikiem i bez - szybkość działania,pamięć?
Ostatnio zmodyfikowano 2014-06-23 15:26
irek45 Temat założony przez niniejszego użytkownika |
[C++] Różnica w formułowaniu funkcji ze znacznikiem i bez - szybkość działania,pamięć? » 2014-06-23 13:41:39 Przerabiam kurs i mam pytanie z serii: dlaczego tak, a nie tak. W tłumaczeniu przydatności znaczników w funkcjach przytoczony został przykład 1. Przykład 2 robi to samo. Czym się to będzie różnić pod względem zużycia pamięci, szybkości działania, użyteczności? Jako początkujący chciałbym to wiedzieć na tym etapie, tzn w tym, krótkim programie to nie ma chyba znaczenia, ale przy konstrukcji większych programów akurat taki zapis ma jakiś cel. Przykład 1 #include <iostream> #include <conio.h> using namespace std;
void operacja( float liczba1, float liczba2, int par, float * wynik ) { cout << "adres : " << wynik << endl; if( par == 1 ) { ( * wynik ) = liczba1 + liczba2; } if( par == 2 ) { ( * wynik ) = liczba1 - liczba2; } if( par == 3 ) { ( * wynik ) = liczba1 * liczba2; } if( par == 4 ) { ( * wynik ) = liczba1 / liczba2; } } int main() { float wynik; operacja( 4, 5, 4, & wynik ); cout << wynik; getch(); return 0; }
Przykład 2 #include <iostream> #include <conio.h> using namespace std;
float operacja( float liczba1, float liczba2, int par ) { float wynik; if( par == 1 ) { wynik = liczba1 + liczba2; } if( par == 2 ) { wynik = liczba1 - liczba2; } if( par == 3 ) { wynik = liczba1 * liczba2; } if( par == 4 ) { wynik = liczba1 / liczba2; } return( wynik ); }
int main() { cout << operacja( 4, 5, 4 ); getch(); return 0; }
|
|
pekfos |
» 2014-06-23 14:16:06 Funkcja ze sposobu nr 1 jest trudniejsza w użyciu i podatna na błędy (np jak podasz zły wskaźnik). Sam zresztą widzisz, sposób 1 wymaga 3 linii kodu do użycia funkcji, a sposób 2 jednej. w tym, krótkim programie to nie ma chyba znaczenia |
Ma znaczenie. Utrudniasz sobie życie lub nie. Jest sens używania tu wskaźników, gdy wynik nie może być zwrócony, ani skopiowany. |
|
DejaVu |
» 2014-06-23 15:26:45 A ja dodam jeszcze: opanuj najpierw dobrze język programowania, a potem zajmuj się ewentualną analizą wydajności. |
|
« 1 » |