ZeePedia

Indefinite Integrals of Logarithmic Functions:Combinations of Logarithms and Polynomials, The Logarithm

<< Files and Streams:Text and Binary Streams, Controlling Streams, Stream States
Formatted Input:Scan Formats, Scan Functions, Scan Conversion Specifiers >>
img
.......
Chapter 6. Functions
You write functions to specify all the actions that a program performs when it
executes. The type of a function tells you the type of result it returns (if any). It can
also tell you the types of any arguments that the function expects when you call it
from within an expression.
This document describes briefly just those aspect of functions most relevant to the
use of the Standard C library:
Argument promotion occurs when the type of the function fails to provide any
information about an argument. Promotion occurs if the function declaration is not
a function prototype or if the argument is one of the unnamed arguments in a
varying number of arguments. In this instance, the argument must be an rvalue
expression (page 15). Hence:
v An integer argument type is promoted.
v An lvalue of type array of T becomes an rvalue of type pointer to T.
v A function designator of type function returning T becomes an rvalue of type
pointer to function returning T.
v An argument of type float is converted to double.
A do statement executes a statement one or more times, while its test-context
expression (page 24) has a nonzero value:
do
statement
while (test);
An expression statement evaluates an expression in a side-effects context (page 24):
printf("hello\n");
call a function
y = m * x + b;
store a value
++count;
alter a stored value
A for statement executes a statement zero or more times, while the optional
test-context expression (page 24) test has a nonzero value. You can also write two
expressions, se-1 and se-2, in a for statement that are each in a side-effects context
(page 24):
for (se-1; test; se-2)
statement
An if statement executes a statement only if the test-context expression (page 24)
has a nonzero value:
if (test)
statement
An if-else statement executes one of two statements, depending on whether the
test-context expression (page 24) has a nonzero value:
if (test)
statement-1
else
statement-2
23
img
.
A return statement terminates execution of the function and transfers control to the
expression that called the function. If you write the optional rvalue expression
(page 15) within the return statement, the result must be assignment-compatible
with the type returned by the function. The program converts the value of the
expression to the type returned and returns it as the value of the function call:
return expression;
An expression that occurs in a side-effects context specifies no value and
designates no object or function. Hence, it can have type void. You typically
evaluate such an expression for its side effects -- any change in the state of the
program that occurs when evaluating an expression. Side effects occur when the
program stores a value in an object, accesses a value from an object of volatile
qualified type, or alters the state of a file.
A switch statement jumps to a place within a controlled statement, depending on
the value of an integer expression:
switch (expr)
{
case val-1:
stat-1;
break;
case val-2:
stat-2;
falls through to next
default:
stat-n
}
In a test-context expression the value of an expression causes control to flow one
way within the statement if the computed value is nonzero or another way if the
computed value is zero. You can write only an expression that has a scalar rvalue
result, because only scalars can be compared with zero.
A while statement executes a statement zero or more times, while the test-context
expression has a nonzero value:
while (test)
statement
24
Standard C++ Library