The Token Passing Operator (##)
Token passing operator ## is used to concatenate two tokens within a macro definition to form a single token.
Example
#include<stdio.h>
#define single(a,b) a##b
main()
{
int cd=10;
printf("%d",single(c,d));
}
Output: 10
The #line Directive
The syntax of line directive is as follows.
#line<constant> [<identifier>]
Causes the compiler to image the line number of the next source line as given by <constant>, and <identifier> gives the current input file. If <identifier> is absent, then the current file name remains unchanged.
Example
#line 15 pragma.c
The Inline Directive
This is used for compilation time faster. It tells the compiler that inline assembly code is contained in the program. It is necessary to know in advance that inline assembly code is contained in program.
Standard I/O predefined streams in <stdio.h>
The predefined stream automatically opens when the program is started.
Table: Standard I/O predefined Macros in <stdio.h>
S.No.
|
Macros
|
Function
|
Definition in stdio.h
|
1.
|
stdin
|
Standard input device
|
#define stdin(&_streams[0])
|
2.
|
stdout
|
Standard output device
|
#define stdout(&_streams[1])
|
3.
|
stderr
|
Standard error output device.
|
#define stderr(&_streams[2])
|
4.
|
stdaux
|
Standard auxiliary device.
|
#define stdaux(&_streams[3])
|
5.
|
stdprn
|
Standard printer
|
#define stdprn(&_streams[4])
|