[Page 1281 (continued)]|
Fill in the blanks in each of the following:
Every preprocessor directive must begin with ___________.
The conditional compilation construct may be extended to test for multiple cases by using the ___________ and the ___________ directives.
The ___________ directive creates macros and symbolic constants.
Only ___________ characters may appear before a preprocessor directive on a line.
The ___________ directive discards symbolic constant and macro names.
The ___________ and ___________ directives are provided as shorthand notation for #if defined(name) and #if !defined(name).
___________ enables the programmer to control the execution of preprocessor directives and the compilation of program code.
The ___________ macro prints a message and terminates program execution if the value of the expression the macro evaluates is 0.
The ___________ directive inserts a file in another file.
The ___________ operator concatenates its two arguments.
The ___________ operator converts its operand to a string.
The character ___________ indicates that the replacement text for a symbolic constant or macro continues on the next line.
Write a program to print the values of the predefined symbolic constants __LINE__, __FILE__, __DATE__ and __TIME__ listed in Fig. F.1.
Write a preprocessor directive to accomplish each of the following:
Define symbolic constant YES to have the value 1.
Define symbolic constant NO to have the value 0.
Include the header file common.h. The header is found in the same directory as the file being compiled.
If symbolic constant TRUE is defined, undefine it, and redefine it as 1. Do not use #ifdef.
If symbolic constant trUE is defined, undefine it, and redefine it as 1. Use the #ifdef preprocessor directive.
If symbolic constant ACTIVE is not equal to 0, define symbolic constant INACTIVE as 0. Otherwise, define INACTIVE as 1.
Define macro CUBE_VOLUME that computes the volume of a cube (takes one argument).