1.3 KiB
1. Section 15.1 listed several advantages of dividing a program into multiple source files.(a). Describe several other advantages
(b). Describe some disadvantages
2. Which of the following should not be put in a header file? Why not?
b. Function definitions - Functions should only be defined once, and this allows multiple files to share the same function definition
3. We saw that writing
#include <file>
instead of#include "file"
may not work if file is one that we've written. Would there be any problem with writing$include "file"
instead of#include <file>
if file is a system header?
Yes, ""
is a path relative to the current file, whereas <>
is a path to the system's standard library headers.
4. Assume that
debug.h
is a header file with the following contents... (a). What is the output when the program is executed?
Output if DEBUG is defined:
Value of i: 1
Value of j: 2
Value of i + j: 3
Value of 2 * i + j - k: 1
(b). What is the output if the
#define
directive is removed fromtestdebug.c
?
Output if DEBUG is not defined:
(c). Explain why the output is different in parts (a) and (b)
When DEBUG
is defined, any instances of the PRINT_DEBUG
token are replaced with a printf
call during compile time, but when it's not defined, they're replaced with nothing.