Preprocessor Directive Program 3
यदि Header
File को Open करके ना देखना चाहे तो
निम्नानुसार एक Program बनाकर भी हम विभन्न Data
Types द्वारा प्रदान की जाने वाली Minimum व Maximum
Range का पता लगा सकते है |
चुकी इन विभन्न
प्रकार के Directives को “limits.h” नाम की Header File में Define किया गया है , इसलिए इन Directives
को Access करने के लिए हमें “limits.h”
नाम की Header File को अपने Program में Include करना जरुरी होता है |
Program
#include<stdio.h>
#include<conio.h>
#include<limits.h>
#include<float.h>
#define – printf(“\n Minimum
#define – printf(“\n Maximum
void main ( ) {
- shor|shortint|singedshort|shortint:%d”,SHRT_MIN);
- short|short int |signed short| signed short int:%d”,SHRT_MAX);
- unsigned short |unsigned short int :%u”,0;
- unsigned short| unsigned short int:%u”,USURT_MAX);
- int| signed int :%d”, INT_MIN);
- int | signed int:%d”, INT_MAX);
- unsigned int :%u”,0);
- long | long int | signed long | signed long int : %ld”, LONG_MIN);
- long | long int | signed long | signed long int:%ld”,LONG_MAX);
- unsigned long | unsigned long int: %lu”, 0);
- unsigned long | unsigned long int:%lu”, ULONG_MAX);
- float :%e”, FLT_MIN);
- float :%e”,FLT_MAX);
- double:%e”,DBL_MIN);
- double:%e”,DBL_MAX);
- long double :%Le”, LDBL_MIN);
- long double:%Le”,LDBL_MAX);
}
ये
Program
देखने में बहुत अजीब लग सकता है , लेकिन इस Program में हमने Underscore व Double Underscore
Symbol से printf( ) Function के कुछ Part
को Directive के रूप में परिभाषित कर लिया है |
जब
इस Program को Compile करते है , तब Program Compile होने से पहले Underscore ( _ ) Symbol के स्थान पर printf(“\n
Mininmum” String को व Double Underscore Symbol ( _ ) के स्थान पर printf(“\n Maximum ‘String Replace कर देता है | Preprocess
होने के बाद जब Program Compile होकर Run
होता है , तब हमें इस Program Compile होकर Run
होता है , तब हमें इस Program का Output
निम्नानुसार प्राप्त होता है |
Output
Minimum/short / short int | signed short |signed short int :-32768
Minimum short| short int signed short | signed short int : 32767
Minimum unsigned short | unsigned short int : 0
Maximum unsigned short | unsigned short int :65535
Maximum int | signed int : -2147483648
Maximum int | signed int : 2147483647
Maximum unsigned int : 0
Maximum unsigned int : 4294967295
Minimum long | long int | signed long | signed long int : -2147483648
Maximum long | long int | signed long | singed long int : 2147483647
Maximum unsigned long | unsigned long int : 0
Maximum unsigned long | unsigned long int : 4294967295
Minimum float : 1.175494e-38
Maximum float : 3.402823e+38
Minimum double : 2.225074-308
Maximum double : 1.797693e+308
Minimum long double : 3.362103e-4932
Maximum long double : 1.18973le+4932
limits.h
नाम की Header File में विभन्न प्रकार के Integer
से सम्बंधित Range की जानकारी होती है , उसी
तरह से float से सम्बंधित विभन्न प्रकार के Range की जानकारी के
लिए हम “float.h” नाम की Header File को
Open करके देख सकते है |
इसलिए
हमने हमारे Program में Float व Double से सम्बंधित Range की
जानकारी के लिए “float.h” नाम की Header file को भी अपने Program में Include किए है |
यदि
हम ये बनाना चाहे की विभन्न प्रकार के Data Type के Identifier Memory में कितने Bytes की Space Reserve करते है , तो इस बात का पता लगाने
के लिए हम sizeof ( ) Operator का प्रयोग कर सकते है |
ये
Operator
Argument के रूप में उस Identifier या Data
Type को लेता है , जिसकी size को हम जानना
चाहते है और हमें उस Data Type या Identifier की Size Return करता है |
यानी
इस Operator
के Bracket के बीच में हम जिस Identifier
या Data Type को लिख देते है , हमें उसी Data
Type की size का पता चल जाता है |
समान्यतया Integer Data Type के अलावा सभी Data Type सभी प्रकार के Computers में समान Memory
Occupy करते है , जबकि Integer, Memory में Compiler
के Register की size के
बराबर Space Reserve करता है |
यदि
हम 16-
Bit Compiler में Bit Processor पर Program
Develop करते व Run करते है , तो Integer 16 – Bit System में 2 Bytes का
होता है जबकि 32-Bit System में Integer की size 4-Bytes होती है |
हम
जिस Compiler
को use कर रहे है , उस Compiler द्वारा विभन्न प्रकार के Basic Data Type द्वारा Occupy
की जा रही Memory का पता हम निम्न Program
द्वारा लगा सकते है |
Program
#include<stdio.h>
#include<conio.h>
void main( )
{
printf(“char :%d Bytes \n”, sizeof(char));
printf(“short :%d Bytes \n”, sizeof(short));
printf(“int :%d Bytes \n”, sizeof(int));
printf(“long :%d Bytes \n”, sizeof(long));
printf(“signed char:%d Bytes\n”, sizeof(signed char));
printf(“signed short:%d Bytes\n”, sizeof(signed short));
printf(“signed int:%d Bytes\n”, sizeof(signed int));
printf(“signed long:%d Bytes\n\n”, sizeof(signed long));
printf(“unsigned char:%d Bytes\n”, sizeof(unsigned char));
printf(“unsigned short:%d Bytes\n”, sizeof(unsigned short));
printf(“unsigned int:%d Bytes\n”, sizeof(unsigned short));
printf(“unsigned int:%d Bytes\n”, sizeof(unsigned int));
printf(“unsigned long:%d Bytes\n\n”, sizeof(unsigned long));
printf(“float :%d Bytes\n”, sizeof(float));
printf(“double :%double\n”, sizeof(double));
printf(“long double:%d Bytes\n”, sizeof(long double));
getch( );
}
Output
---------------------------------------------------------------------------
16 – Bit Computer’s Output 32-Bit Computers Output
--------------------------------------------------------------------------
char : 1 Bytes char : 1 Bytes
short : 2 Bytes short : 2 Bytes
int : 2 Bytes int : 4 Bytes
long : 4 Bytes long : 4 Bytes
signed char : 1 Bytes signed char : 1 Bytes
signed short : 2 Bytes signed short : 2 Bytes
signed int : 2 Bytes signed int : 4 Bytes
signed long : 4 Bytes signed long : 4 Bytes
unsigned char : 1 Bytes unsigned char : 1 Bytes
unsigned short : 2 Bytes unsigned short : 2 Bytes
unsigned int : 2 Bytes unsigned int : 4 Bytes
unsigned long : 4 Bytes unsigned long : 4 Bytes
float : 4 Bytes float : 4 Bytes
double : 8 Bytes double : 8 Bytes
long double : 10 Bytes long double :10 Bytes
No comments