1.1. Writing a Simple C++ Program
Every C++ program contains one or more
functions
, one of which must be named
main
. A function consists of a sequence of
statements
that perform the work of the function. The operating system executes a program by calling the function named
main
. That function executes its
Here is a simple version of main does nothing but return a value:
int main()
{
return 0;
}
The operating system uses the value returned by main to determine whether the program succeeded or failed. A return value of 0 indicates success. The main function is special in various ways, the most important of which are that the function must exist in every C++ program and it is the (only) function that the operating system explicitly calls.
We define
main
the same way we define other functions. A function definition specifies four elements: the
return type
, the
function
The main function is required to have a return type of int , which is the type that represents integers. The int type is a built-in type , which means that the type is defined by the language.
The final part of a function definition, the function body, is a
block
of statements starting with an
{
return 0;
}
The only statement in our program is a return , which is a statement that terminates a function.
When the return includes a value such as , that value is the return value of the function. The value returned must have the same type as the return type of the function or be a type that can be converted to that type. In the case of main the return type must be int , and the value is an int .
On most systems, the return value from
main
is a status indicator. A return value of
indicates the successful completion of
main
. Any other return value has a meaning that is defined by the operating system. Usually a nonzero return indicates that an error occurred. Each operating system has its own way of telling the
1.1.1. Compiling and Executing Our ProgramHaving written the program, we need to compile it. How you compile a program depends on your operating system and compiler. For details on how your particular compiler works, you'll need to check the reference manual or ask a knowledgeable colleague.
Many PC-based compilers are run from an integrated development environment (IDE) that bundles the compiler with associated build and analysis tools. These environments can be a great asset in developing complex programs but require a fair bit of time to learn how to use effectively. Most of these environments include a point-and-click interface that allows the programmer to write a program and use various
Most compilers, including those that come with an IDE, provide a command-line interface. Unless you are already familiar with using your compiler's IDE, it can be easier to start by using the simpler, command-line interface. Using the command-line interface lets you avoid the overhead of learning the IDE before learning the language. Program Source File Naming Convention
Whether we are using a command-line interface or an IDE, most compilers expect that the program we want to compile will be stored in a file. Program files are referred to as
source files
. On most systems, a source file has a name that consists of two
prog1.cc The suffix for C++ program files depends on which compiler you're running. Other conventions include
prog1.cxx
prog1.cpp
prog1.cp
prog1.C
Running the Compiler from the Command LineIf we are using a command-line interface, we will typically compile a program in a console window (such as a shell window on a UNIX system or a Command Prompt window on Windows). Assuming that our main program is in a file named prog1.cc , we might compile it by using a command such as:
$ CC prog1.cc
where CC names the compiler and $ represents the system prompt. The output of the compiler is an executable file that we invoke by naming it. On our system, the compiler generates the executable in a file named a.exe . UNIX compilers tend to put their executables in a file named a.out . To run an executable we supply that name at the command-line prompt:
$ a.exe
executes the program we compiled. On UNIX systems you sometimes must also specify which directory the file is in, even if it is in the current directory. In such cases, we would write
$ ./a.exe
The " . " followed by a slash indicates that the file is in the current directory. The value returned from main is accessed in a system-dependent manner. On both UNIX and Windows systems, after executing the program, you must issue an appropriate echo command. On UNIX systems, we obtain the status by writing
$ echo $?
To see the status on a Windows system, we write
C:\directory> echo %ERRORLEVEL%
|