Developing in C/C++
An Introduction |
Prof. David Bernstein
|
Computer Science Department |
bernstdh@jmu.edu |
A Note for Java Programmers: Java does not have a linker and does not (normally) produce executable files. Instead, the compiler creates byte code that is executed by an interpreter.
#define
statement that can be used for more
complicated substitutions. It is best to avoid the use of
"macros" of this kind.
#define
statement (e.g., #define VERBOSE) and
is undefined using the #undef
statement
(e.g.,#undef VERBOSE)
-D
option#ifndef
statement (if not defined)
and the #else
statement#include
statements #include
statements can be nested
(e.g., the file test.cpp
can #include
test.h
and test.h
can
#include
myconstants.h
)#include
statements
Account.h
Account.h
#include
unrelated files in the
.h
file or the .cpp
file?#include
it in the .h
file whereas if it is needed only for implementation
then #include
it in the
.cpp
file)Lexical Analysis | Identification of tokens (e.g., keywords, identifiers, etc...) (this process is sometimes called scanning) |
Syntactic Analysis | Identification of grammatical and ungrammatical phrases. (this process is called parsing) |
Code Generation | Production of object or machine code (or some kind of intermediate code) from the "parse tree" |
Optimization | Improvement of code to make it smaller or faster (or to achieve some other objective) |
sqrt
function, the compiler only needs to know the
signature of this function (e.g., what it is
passed and what it returns)#include
directive)