Sams Teach Yourself C++ in 21 Days

(singke) #1
7: #else
8: #define PRINT(x) \
9: cout << #x << “:\t” << x << endl;
10: #endif
11:
12: enum BOOL { FALSE, TRUE } ;
13:
14: int main()
15: {
16: int x = 5;
17: long y = 73898l;
18: PRINT(x);
19: for (int i = 0; i < x; i++)
20: {
21: PRINT(i);
22: }
23:
24: PRINT (y);
25: PRINT(“Hi.”);
26: int *px = &x;
27: PRINT(px);
28: PRINT (*px);
29: return 0;
30: }

x: 5
i: 0
i: 1
i: 2
i: 3
i: 4
y: 73898
“Hi.”: Hi.
px: OO12FEDC
*px: 5
The PRINT()macro on lines 6 and 8–9 provides printing of the current value of
the supplied parameter. Note that the first thing fed to couton line 9 is the
stringized version of the parameter; that is, if you pass in x,coutreceives “x”.
Next,coutreceives the quoted string “:\t”, which prints a colon and then a tab. Third,
coutreceives the value of the parameter (x), and then finally,endl, which writes a new
line and flushes the buffer.
Note that you might receive a value other than 0012FEDC.

OUTPUT


770 Day 21


LISTING21.5 continued

ANALYSIS
Free download pdf