Converting value-returning functions to void functions
#include
#include
int inc (int);
void main ()
{
int i = 3;
int j;
j = inc (i);
cout << j << endl;
}
int inc (int a)
{
return(a+1);
}
Bad style, side-effects, value-returning
#include
#include
int counter = 0;
int add (int&, int&);
void main ()
{
int i, j, sum;
i = 7; j = 17;
sum = add(i,j);
cout << "counter = " << counter << ", i = " << i << ", j = " << j
<< ", sum = " << sum << endl;
i = 7; j = 17;
sum = add(i,j);
cout << "counter = " << counter << ", i = " << i << ", j = " << j
<< ", sum = " << sum+i+j+counter << endl;
i = 7; j = 17;
sum = i+j+counter;
cout << "counter = " << counter << ", i = " << i << ", j = " << j
<< ", sum = " << sum+add(i,j) << endl;
i = 7; j = 17;
sum = add(i,i);
cout << "counter = " << counter << ", i = " << i << ", j = " << j
<< ", sum = " << sum << endl;
}
int add (int& a, int& b)
{
int temp, sum;
sum = a+b;
temp = a;
a = b+1;
b = temp+1;
counter = counter + 1;
return(sum);
}
Understanding scope
#include
#include
void f ();
int i = 0;
void main ()
{
cout << i << endl;
int i = 1;
cout << i << endl;
{
int i = 2;
cout << i << endl;
{
int i = 3;
cout << i << endl;
{
int i = 4;
cout << i << endl;
}
cout << i << endl;
}
cout << i << endl;
}
cout << i << endl;
f(); f(); f();
}
void f ()
{
cout << i << endl;
static int i = 5;
cout << i++ << endl;
}
No comments:
Post a Comment