The 
components of C are as shown in figure. They are divided into six categories. 
Learning C language means learning about them. Following chapters discuss some 
of these components in details.
A 
programming language is composed of a bunch of words combined. A computer 
program is the formatting and use of these words in an organized manner. These 
bunches of words are known as tokens. A token is the smallest element of a program that is 
meaningful to the compiler.
The syntax is nothing but rules imposed by 
language or compiler on code and semantics are meanings it takes out from it. 
Words and phrases are used to make 
sentences and sentences are used to make paragraphs.
In the same way, whitespace, keywords, 
literals, and identifiers are combined to make expressions and statements. These 
in turn are combined to make a program.
Statements & Expressions
Expressions are like phrases. They are snippets of code made up of 
keywords.
For example, the following are simple 
expressions:
PI = 3.14159
PI * radius * 
radius
Statements are like sentences. They complete a single thought. A 
statement generally ends with a punctuation character—a semicolon (;).For 
example, the following are simple expressions:
PI = 3.14159;
result = PI * radius * 
radius;
Special Symbols
The following special symbols are used in 
C having some special meaning and thus, cannot be used for some other purpose.[] 
() {}, ; * = # 
Brackets [ ]
The opening and closing brackets are used 
as array element reference. These indicate single and multidimensional 
subscripts.
The brackets are used with arrays and 
examples are as follows:
/* in variable declaration 
*/
int x [3] ; /* 3 element array of type 
integer */
char *name [3] = { “Tom”, “Dick” , “Harry” 
} ; 
for (int i = 0 ; i < 2 ; i++ 
)
  
printf (“ Name: %s” , name [i] 
);
Parentheses ( )
The special symbols are used to indicate 
function calls and function’s parameters.
The parentheses are used with functions 
and examples are as follows:
/* in function declaration 
*/
int add ( int x , int y ) ; 
/* at function call 
*/
result = add ( 3, 3 ) ; 
/* at function definition 
*/
int add ( int x , int y 
)
{return ( x + Y ); } 
/* at casting one number to another 
*/
int k; float 
pi=3.142;
k = (int) pi * 2 
;
Braces { }
These opening and ending curly braces 
marks the start and end of a block of code containing more than one executable 
statement.
The braces are used with code blocks and 
at array elements initialization and examples are as 
follows:
/* at function definition 
*/
int add ( int x , int y 
)
{
return ( x + Y ); 
} 
/* at array element initialization 
*/
char *name [3] = { “Tom”, “Dick” , “Harry” 
} ; 
See the Code Blocks and Scope section for 
further details.
Comma ,
It is used to separate more than one 
statements like for separating parameters in function 
calls.
The comma is used with separation of 
elements and examples are as follows:
/* at array element initialization 
*/
int rollNos [3] = { 111, 112 , 113 } ; 
/* at function declaration 
*/
int add ( int x , int y 
)
Semi-colon ;
It is an operator that essentially invokes 
something called an initialization list.
As program is made 
of many statements, expressions or control structures it is necessary to 
separate them from one another. For this separation purpose, each statement is 
terminating with semi-colon.  
So while declaring, initializing 
functions, variables, constants, or calling functions or writing expressions 
semi-colon is use at the end of statement.
The statement terminator semi-colon symbol 
examples are as follows:
/* in variable declaration 
*/
in x ; char ch = ‘M’ ; float PI = 3142 
;
/* in expressions or statements 
*/
k = i * j ;  x = 1971 ;
/* in function declaration 
*/
int add ( int x , int y ) 
;  
Empty Statement or Null Statement
The semi-colon by itself constitutes a 
valid statement, the null statement. Null statement is often very handy, and we 
will quite frequently have occasion to use them. It itself does nothing, no 
expressions to execute hence called Empty statement on its own 
line.
Example code line for this type is as 
follows:
/* Null Statement showing code 
*/
while ( ans == ‘ y ’ 
)
 ;   /* do 
nothing!*/
Asterisk *
It is used to create pointer 
variable.
The asterisk is used with pointers and 
examples are as follows:
/* in pointer of string type declaration 
*/
char *name [3] = { “Tom”, “Dick” , “Harry” 
} ;
Assignment Operator =
It is used to assign 
values.
The assignment operator is used with 
assign values and examples are as follows:
/* at assigning three string variables to 
char array */
char *name [3] = { “Tom”, “Dick” , “Harry” 
} ;
/* at assigning variables with operation 
to another variable */
z = x + y ;
Pre-processor #
The preprocessor is a macro processor that 
is used automatically by the compiler to transform your program before actual 
compilation.
The pre-processor is used with macro 
processor and examples are as follows:
/* at include section: to include header 
file */
#include < stdio.h 
>
#include “add.h”
/* to define something 
*/
#define PI     3.142
Code Blocks and Scope
While writing codes one 
needs to group them according to their need. In such situations flower brackets 
are used. They limit the scope of any variable within the two flower brackets. 
If declarations of variables, constants and functions are not within any flower 
brackets they are treated as global one and can be accessed throughout source 
file easily without any restriction.
int i, j 
,result;
i=3; j = 
4;
{
result = i + j 
;
printf ( “result 
= %d “, result);
/* result = 7 
*/
int 
k=125;
printf ( “k = %d 
“, k);
/* k = 125 
*/
}
i=15; j = 
27;
{
…
float 
k=125.5;
printf ( “k = %f 
“, k);
/* k = 125.5 
*/
}
In the above code 
segments, I & 
j are 
global variables and can be accessed in any code block within source file. 
Whereas k is local variable 
and can be accessed within code block it is declared is 
possible.
Reserved Words or Keywords
Every C program is composed of many 
keywords or reserved words and they make up a language. These keywords have a 
specific meaning when you program in C. This tutorial also discusses usage of 
these keywords here and there. Because all these words have a special meaning, 
they are reserved. You cannot use them for your own use. In simple terms, 
programmer cannot use such words to name variables or constant names or function 
names in his program. 
This is a list of 
reserved keywords in C. Since they are used by the language, these keywords are 
not available for re-definition. 
| 
 
_Alignas (since 
C11) 
_Alignof (since C11) _Atomic (since C11) _Bool (since C99) _Complex (since C99) _Generic (since C11) _Imaginary (since C99) _Noreturn (since C11) _Static_assert (since C11) _Thread_local (since C11)  | 
The most common keywords 
that begin with an underscore are generally used through their convenience 
macros: 
White Space or Free form code
The blank spaces put 
into a listing are called whitespace. Whitespace can consist of spaces, 
tabs, line feeds, and carriage returns. [Note that escape sequences provide such 
facility to programmer to hard code in his program].The compiler almost always 
ignores whitespace. Because of this, you can add as many spaces, tabs, or line 
feeds as you want. For example, 
printf ( “Hello 
World!\n Hello Universe!”);
/* above printf() 
function prints below two lines on screen for user*/
Hello 
World!
Hello 
Universe!
printf ( “Hello 
World!\t Hello Universe!”);
/*above printf() 
function prints two strings with tab separate on 
screen*/
Hello World!         
Hello Universe!
The importance of white 
space while coding c programs is evident by seeing below expression statement 
example.
int 
result=20;
This is a well-formatted 
line with a single space between items. This line could have had additional 
spaces:
int result = 20 
;
This line with extra 
spaces executes the same way as the original. In fact, when the program is run 
through the C compiler, the extra whitespace is removed. You could also format 
this code across multiple lines:
int
result
=
20
;
Although this is not 
very readable, it still works.
Note that no space is 
inserted whenever it is necessary may leads to error in program. For 
example,
intresult=20;
above expression is wrong as 
int and result are two different entity and no space 
is provided while declaring leads to error.
Because whitespace is 
ignored in general usage, you should make liberal use of it to help format your 
code and make it readable.
The exception to the 
compiler ignoring whitespace has to do with the use of text within quotation 
marks. When you use text within double quotes, whitespace is important because 
the text is to be used exactly as presented. Text has been used within quotation 
marks with the listings you have seen so far. This text is written exactly as it 
is presented between the quotation marks. For example,
printf(“ Hello! 
whats…   your name? let me 
recall..”);
/*prints as it 
is, with spaces*/
 Hello! 
whats…   your name? let me 
recall..
Tip Use whitespace to 
make your code easier to read.
Note about free form 
language, as C is one such language it does not care where you put braces or 
start the line of instructions. For example,
main()
{
int x, y, 
z=0;
z = 3 + 
2;
printf( “Hello 
World! result is %d”, z);
}
is written also as 
below, although is less readable.
main(){int x, y, 
z=0;z = 3 + 2;printf( “Hello World! result is %d”, z);}
Another example for bad 
coding but legal program lines is as follows:
printf ( “This is 
first line”); 
printf      (“This is second 
line”);
printf        (“This is third line”)                ;
The 
statements in C may be any length and may begin in any column. Each statement 
may extend over several lines, as long as any included strings are not 
broken.
Note: 
This is not true with directives such as including library files using #include 
directive, defining constants using #define etc.
Comments Or Annotating Programs
Comments are a way of inserting remarks 
and reminders into code without affecting its behavior. Since comments are only 
read by other humans, you can put anything you wish to in a comment, but it is 
better to be informative than humorous.
The compiler ignores comments, treating 
them as though they were whitespace (blank characters, such as spaces, tabs, or 
carriage returns), and they are consequently ignored.
During compilation, comments are simply 
stripped out of the code, so programs can contain any number of comments without 
losing speed.
Because a comment is treated as 
whitespace, it can be placed anywhere whitespace is valid, even in the middle of 
a statement. (Such a practice can make your code difficult to read, 
however.)
Any text sandwiched between `/*' and `*/' 
in C code is a comment.
Examples of 
comments:
/* declaring 
integer type variables*/
int x , y , 
z;
z = 0 ; 
/*Initializing variable z */
z = x + /*between 
add operation */ y;
/*****************************
* add() – 
function adds two integers
* takes two 
parameters:
* int x and int 
y
* returns integer 
type data
******************************/
int add(int x, 
int y)
{return ( x+y 
);}
Coding guidelines
Even 
though C is free form language certain coding guidelines should be follow in 
programming as is necessary for code management. The basic conventions 
are:
·         Put the main() function on its own 
line.
·         Put the opening and closing braces on their own 
lines.
·         Indent the code blocks within braces so that reading 
will be easy.
·         The include statements start at top of file and on first 
column.
The below code sample 
shows such program segment.
#include 
<stdio.h>
int 
main(void)
{
printf(“Hello 
world!”);
....
if ( a > 
b)
  {
  printf(“a 
is big”);
  i++;
  }
else
  printf(“b 
is big”);
}
C language library list
The core of the C language is small and 
simple, but special functionality is provided in the form of external libraries 
of ready-made functions. Standardized libraries make C code extremely portable, 
or easy to compile on many different computers.
Libraries are files of ready-compiled code 
that the compiler merges, or links, with a C program during compilation. For 
example, there are libraries of mathematical functions, string handling 
functions, and input/output functions. Indeed, most of the facilities C offers 
are provided as libraries.
Some libraries are provided for you. You 
can also make your own, but to do so, you will need to know how GNU builds 
libraries. Most C programs include at least one library. You need to ensure both 
that the library is linked to your program and that its header files are 
included in your program.
In simple term, C 
does not have any command for displaying information on screen or get 
information from keyboard. Such frequently needed tasks are written in reusable 
code files and supplied with compiler as in-built library functions. The user 
has to add just library function’s declaration file, called header file in his 
code by writing #include <> directive at the start of code. Then the 
compiler parses the code, adds header file contents to source code and links 
pre-compiled library code of the header file from standard library folder. 
[Refer Basic Program code segment which prints Hello world! to the user on 
console]
Pre-processing is a 
phase of compilation that is performed prior to the analysis of the program 
text. The pre-processor directives differ from statements in two ways: one, they 
must begin in the first column, with no spaces between the 
# and the include keyword; and two, they are not terminated by a 
semicolon.
The 
#include directive causes the 
inclusion of external text__ in this case the file stdio.h__ in your source 
program before the actual compilation proceeds.
Header File name
Purpose
assert.h
program diagnostics/debugging macro
bios.h
function to link to system BIOS [Basic Input/Output System] 
routine
ctype.h
character testing
dir.h
used in working directories
fcntl.h
low level file routines
limits.h
integral type sizes
math.h
math functions, such as sin(),cos()…
process.h
support for spawn and exec functions
setjmp.h
Non-local flow control jumps
signal.h
exceptional condition signals
stdarg.h
standard argument declaration
stdio.h
standard I/O macros and functions
stdlib.h
standard functions such as malloc, rand
string.h
string functions/operations
time.h
date and time utilities
values.h
constants compatible with UNIX system V
The standard libraries are also called as 
predefined functions, built-in functions, or library functions. Most of the C 
compilers support the following standard library 
facilities.
·         Mathematical operations
·         Operation on strings
·         Operation on characters
·         Storage allocations 
procedures
·         Input-output operations
Errors
Errors are nothing but 
mistakes done by programmer while coding any program or wrong user input by user 
while using the program.
While compiling compiler checks for 
syntax errors and reports it to programmer for correction, and until all errors 
are not cleared program will not compile. Since compiler sometimes reports huge 
number of errors for single syntax error, it is advisable to clear first 
encountered error and recompile code to check for further errors. Sample 
compiler errors are typing whlie instead of while or int x = 8.2 assigning float number to integer 
type variable, semi-colon or brace is missed etc. 
As name implies, 
Run-time errors are errors occur at execution time of any program. It may be due 
to wrong user input or malfunctioning of program due to library mismatch 
etc.
Note for programmer: C 
is case-sensitive language
Like Linux operating system, C is also 
case sensitive language. It differ menu from Menu that means c considers them as two 
different names.
Note for programmer: C 
is typed language
C is a typed language, 
and it means data is to be typed or declared before using them. There are many 
in-built data types which are only allowed in c programs. Care should be taken 
while defining or initializing data types, with same type is advised. For 
example integer type variable is to be initialized with integer type values 
only, not any float type or character type data.   
| Previous Page | Main Contents | Next Page | 

No comments:
Post a Comment