c programming

Unformatted & Formatted I/O’s and Data Type Casting

Unformatted I/O

Unformatted I/O में बिना किसी Specific Structure या Formatting के Data को Read या Write करना शामिल है। इसका मतलब यह है, कि Data को बिना किसी Interpretation के Raw Byte के रूप में Process किया जाता है। इस प्रकार का I/O Binary Data या Low-Level File Operation से Deal करने में use होता है| जहां Bytes को Direct Access करने की आवश्यकता होती है।

Example

Title


#include <stdio.h>
int main() {
FILE *file;
int data[] = {10, 20, 30, 40, 50};
int num_elements = sizeof(data) / sizeof(data[0]);

// Writing data to a binary file
file = fopen(“unformatted_data.bin”, “wb”);
if (file != NULL) {
fwrite(data, sizeof(int), num_elements, file);
fclose(file);
printf(“Data written to unformatted_data.bin\n”);
} else {
printf(“Error opening file for writing\n”);
}

// Reading data from the binary file
int read_data[num_elements];
file = fopen(“unformatted_data.bin”, “rb”);
if (file != NULL) {
fread(read_data, sizeof(int), num_elements, file);
fclose(file);
printf(“Data read from unformatted_data.bin: “);
for (int i = 0; i < num_elements; i++) {
printf(“%d “, read_data[i]);
}
printf(“\n”);
} else {
printf(“Error opening file for reading\n”);
}
return 0;
}

Output 


Data written to unformatted_data.bin
Data read from unformatted_data.bin: 10 20 30 40 50

Formatted I/O

Formatted I/O Human-Readable Format में Data से संबंधित है, जहां Data को एक Specific Layout या Style में Present किया जाता है। इसका use अक्सर Console के माध्यम से User के साथ Interact करते समय या Text File को Read/Write करते समय किया जाता है।

Example


#include <stdio.h>
int main() {
FILE *file;
int data[] = {10, 20, 30, 40, 50};
int num_elements = sizeof(data)/sizeof(data[0]);

// Writing data to a text file
file = fopen(“formatted_data.txt”, “w”);
if (file != NULL) {
for (int i = 0; i < num_elements; i++) {
printf(file, “%d “, data[i]);
}
fclose(file);
printf(“Data written to formatted_data.txt\n”);
} else {
printf(“Error opening file for writing\n”);
}

// Reading data from the text file
int read_data[num_elements];
file = fopen(“formatted_data.txt”, “r”);
if (file != NULL) {
for (int i = 0; i < num_elements; i++) {
fscanf(file, “%d”, &read_data[i]);
}
fclose(file);
printf(“Data read from formatted_data.txt: “);
for (int i = 0; i < num_elements; i++) {
printf(“%d “, read_data[i]);
}
printf(“\n”);
} else {
printf(“Error opening file for reading\n”);
}
return 0;
}

Output


Data written to formatted_data.txt
Data read from formatted_data.txt: 10 20 30 40 50

Data Type Casting

Data Type Casting को Type Conversion के रूप में भी जाना जाता है| यह C Programming में एक Fundamental Concept है, जो Developers को एक Data Type को दूसरे में Convert करने की Permission देती है। C Programming Language में, Data Type Casting एक महत्वपूर्ण Operation है, जब Different Data Type के Variable पर Operation करने की आवश्यकता होती है, या जब आप एक Type के Value को एक अलग Type के Variable पर Assign करना चाहते हैं।

Implicit Type Casting

Implicit Type Casting को Automatic Type Conversion के रूप में भी जाना जाता है, इसमें Compiler Programmer द्वारा Explicit Conversion की आवश्यकता के बिना Automatically रूप से एक Data Type को दूसरे में Convert करता है। यह आमतौर पर तब होता है, जब Low Precise Data type को High Precise Data Type में Convert किया जाता है| अथवा जब छोटे Data Type को बड़े Data Type में परिवर्तित किया जाता है।

Example

यहां दो Variable हैं- एक Integer (int) और एक Floating-Point Number (float)। जब Float Variable में Int Value Assign करने का प्रयास करेंगे| तो C Compiler Automatically रूप से Type Conversion Perform करेगा।


#include <stdio.h>
int main() {
int integerValue = 10;
float floatValue;
floatValue = integerValue; // Implicit type casting
printf(“integerValue: %d\n”, integerValue);
printf(“floatValue: %f\n”, floatValue);
return 0;
}

Output


integerValue: 10
floatValue: 10.000000

Explicit Type Casting

Explicit Type Casting को Manual Type conversion के रूप में भी जाना जाता है|यह Method तब Effective होता है, जब Programmer किसी Variable के लिए Desire Data Type को Explicitly रूप से Specifies करता है। High Precise Data Type को Low Precise Data Type में Convert करते समय यह आवश्यक होता है, क्योंकि इससे Data Loss हो सकती है।

Example

यहां हमारे पास एक Floating-Point Number है, और हम इसे Integer Variable में Store करना चाहते हैं। चूँकि Float Type में int की तुलना में अधिक Precision होती है, इसलिए Data Loss से बचने के लिए हमें Float Value को स्पष्ट रूप से int Value में डालने की आवश्यकता होती है।


#include <stdio.h>

int main() {
float floatValue = 3.14159;
int integerValue;
// Explicit Type Casting
integerValue = (int)floatValue;
printf(“floatValue: %f\n”, floatValue);
printf(“integerValue: %d\n”, integerValue);
return 0;
}

Output


floatValue: 3.141590
integerValue: 3

इस Example में, FloatValue को Explicitly रूप से एक int में डाला जाता है, जिसके परिणामस्वरूप Decimal Precision का Loss होता है। printf Function पूरी Precision और IntegerValue के साथ FloatValue Display करता है, जो Explicit Type Casting का Result Show करता है।

c programming

Operators and Expressions

Operator

Operators एक Symbol होते हैं, जिनका use Mathematical, Relational, Bitwise, Conditional, या Logical Manipulation करने के लिए किया जा सकता है। C Programming Language में Program की आवश्यकता के अनुसार विभिन्न Task को Perform करने के लिए बहुत सारे Built-in Operator होते हैं। आमतौर पर, Operator Data और Variable में Manipulate करने के लिए एक Program में Implement होता हैं, और Mathematical, Conditional या Logical Operation Perrform करते हैं।

यह एक Symbol होता है, जो एक Value या Variable पर Operate होता है। Example के लिए, (+) और (-) किसी भी C Program में Addition और Subtraction करने वाले Operator हैं। C में Multiple Operator होते हैं, जो लगभग सभी प्रकार के Operation करते हैं। ये Operator वास्तव में useful हैं, और Specific Operation को करने के लिए use किए जा सकते हैं।

  • Arithmetic Operators
  • Relational Operators
  • Logical Operators
  • Assignment Operators
  • Increment and Decrement Operators
  • Bitwise Operators
  • Conditional Operators

Arithmetic Operator

इन Operators का use Numerical Calculation या Arithmetic Operation जैसे Addition, Substraction आदि करने के लिए किया जाता है।

Operator Description Example a=20,b=10 Output
+ Addition a+b 20+10 30
Subtraction a-b 20-10 10
* Multiplication a*b 20*10 200
/ Division a/b 20/10 2(Quotient)
% Modular Division a%b 20%10 0 (Remainder)

Example


#include<stdio.h>
main(){
   int a=20, b=10;
   printf("%d",a+b);
   printf("%d",a-b);
   printf("%d",a*b);
   printf("%d",a/b);
   printf("%d",a%b);
}

Output


30

10

200

20

Relational Operators

Relational Operators का use दो Operand के Value का Comparison करने के लिए किया जाता है। Example – Check करना कि क्या एक Operand दूसरे Operand के बराबर है।

Operator Description Example a=20,b=10 Output
< Less Than a<b 10<20 1
<= Less Than (or) Equal to a<=b 10<=20 1
> Greater Than a>b 10>20 0
>= Greater Than (or) Equal to a>=b 10>=20 0
== Equal to a==b 10==20 0
!= Not Equal to a!=b 10!=20 1

Example


#include<stdio.h>
main(){
   int a=10, b=20;
   printf("%d",a<b);
   printf("%d",a<=b);
   printf("%d",a>b);
   printf("%d",a>=b);
   printf("%d",a==b);
   printf("%d",a!=b);
}

Output


1 1 0 0 0 1 1 1

Logical Operators

Logical Operators का use Expressions पर Logical Operation करने के लिए किया जाता है। इनमें Logical AND (&&), Logical OR (||), और Logical NOT (!)  शामिल हैं। ये Operator Expression का Evalution करते हैं, और उनके True/False Value के Base पर 1 (True) या 0 (False) Return करता हैं।

exp1 exp2 exp1&&exp2
T T T
T F F
F T F
F F F

Logical AND (&&)

exp1 exp2 exp1||exp2
T T T
T F T
F T T
F F F

Logical OR (||)

exp !exp
T F
F T

Logical NOT (!)

Operator Description Example a=20,b=10 Output
&& Logical AND (a>b)&&(a<c) (10>20)&&(10<30) 0
|| Logical OR (a>b)||(a<=c) (10>20)||(10<30) 1
! Logical NOT !(a>b) !(10>20) 1

Example


#include<stdio.h>
main(){
   int a=10, b=20, c=30;
   printf("%d",(a>b)&&(a<c));
   printf("%d",(a>b)||(a<c));
   printf("%d",!(a>b));
}

Output


0 1 1

Assignment operators

Assignment Operator का use किसी Variable को Value Assign करने के लिए किया जाता है। Assignment Operator का Left Side Operand एक Variable होता है, और Variable का Right Side Operand एक Value होती है। Right Side का Value उसी Data Type का होना चाहिए जो Left Side का Variable है, अन्यथा Compiler एक Error Generate करता है।

Example


#include<stdio.h>
main(){
   int a=10;
   printf("%d",a);
   printf("%d",a+=10);
}

Output


10

20

Increment (++) and Decrement (–)

  • Increment Operator (++)  Variable की Value में 1 Increase कर देता है|
  • Decrement Operator (–)  Variable की Value में 1 Decrease कर देता है|
Operators Same as
++a (Increment Prefix) a = a+1
–a (Decrement Prefix) a = a-1
a++ (Increment Postfix)
a– (Decrement Postfix)

Example

Title


#include <iostream.h>
using namespace std;
int main() {
    int a=20;
    cout<<"Print Value with prefix : "<<++a<<endl; // increase value with increment prefix
    cout<<"Value of a : "<<a<<endl;
    cout<<"Print Value with prefix : "<<--a<<endl; // decrease value with decrement prefix
    cout<<"Value of a : "<<a<<endl;
    cout<<"Print Value with postfix : "<<a++<<endl; // increase value with increment postfix
    cout<<"Value of a : "<<a<<endl;
    cout<<"Print Value with postfix : "<<a--<<endl; // decrease value with decrement postfix
    cout<<"Value of a : "<<a<<endl;
    return 0;
}

Output

Title


Print Value with prefix : 21
Value of a : 21
Print Value with prefix : 20
Value of a : 20
Print Value with postfix : 20
Value of a : 21
Print Value with postfix : 21
Value of a : 20

Bitwise Operator

Bitwise Operators वे Operator होते हैं, जो Bits पर काम करते हैं और Bit-by-Bit Operation करते हैं। Addition, Subtraction, Multiplication, Division आदि जैसे Mathematical Operation को Bit-Level में Convert किया जाता है, जो Program की Computation और Compiling के दौरान Processing को तेज और आसान बनाता है।

Bit-Level Operation करने के लिए Bitwise Operator का विशेष रूप से C Programming  में use किया जाता है। C Programming Language दो Variable के बीच Bit Operation के लिए Special Operator को Support करती है।

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Conditional operator

Operator Pair “?” और “:” Conditional Operator के रूप में जाना जाता है। Operator की ये Pair Ternary Operator हैं। Conditional Operator का General Syntax निम्नलिखित होता है-


expression1 ? expression2 : expression3 ;

Example


#include<stdio.h>

#include<string.h>

int main(){

int age = 25;

char status;

status= (age>22) ? ‘M’‘U’;

if(status == ‘M’)

printf(“Married”);

else

printf(“Unmarried”);

return 0;

}

Output


Married

c programming

Storage Classes

Storage Class

C Language में प्रत्येक Variable के Data Type के साथ उसका Storage Class भी होता है। Storage Class उस Variable का Data Storage Location, Initial Value, Scope तथा Life को Represent करता है। C Language में प्रत्येक Variable का एक Storage Class होता है, जिसे Program में Declare करते समय Initialize किया जाता है। किसी Variable का Default Storage Class, Automatic Allocate होता है।

Types of Storage Class

Automatic Storage Class

Automatic Variable को Runtime पर Automatically Memory Allocate की जाती है। Automatic Variable की Visibility अथवा Scope उस Block तक Limit होता है, जिसमें वे Define हैं। Automatic Variable को मुख्य रूप से Garbage Collection करने के लिए Initialize किया जाता है।

Block से बाहर निकलने पर Automatic Variable को Assigned Memory Free हो जाती है। Automatic Variable को Define करने के लिए Auto Keywords प्रयोग किया जाता है। Default रूप से C में प्रत्येक Local Variable Automatic होता है।

Example


#include <stdio.h>

int main()

{

int a; //auto

char b;

float c;

printf(“%d %c %f”, a,b,c); // printing initial default value of automatic variables a, b, and c. 

return 0;

}

Output


garbage garbage garbage

Static Storage Class

Static Local Variable केवल उस Function या Block के लिए Visible होते हैं, जिसमें वे Define होते हैं। एक ही Static Variable को कई बार Declare किया जा सकता है, लेकिन केवल एक ही समय में Assign किया जा सकता है। Static Integral Variable का Default Initial Value (0) होता है।

Static Global Variable की Visibility उस File तक सीमित है, जिसमें उसे Declare किया गया है। Static Variable को Define करने के लिए Static Keyword का प्रयोग किया जाता है।

Example


#include<stdio.h>

static char c;

static int i;

static float f;

static char s[100];

void main ()

{

printf(“%d %d %f %s”,c,i,f); // the initial default value of c, i, and f will be printed. 

}

Output


0 0 0.000000 (null)

Register Storage Class

CPU में Non-Allocated Memory के Size के अनुसार Register के रूप में Define Variables को CPU Registers में Memory Allocate की जाती है। Register Variable को Dereference नहीं किया जा सकता हैं, अर्थात Register Variable के लिए (&) Operator का use नहीं कर सकते हैं।

Register Variable का Access Time Automatic Variable की तुलना में Fast होता है।Register Local Variable का Initial Default Value (0) होता है। Register Keyword का use उन Variable के लिए किया जाता है, जिसे CPU Register में Store किया जाना चाहिए। हालाँकि, Compiler की Configuration के अनुसार Variable को Register में Store किया जा सकता है।

Register Storage Class एक Variable के Address को Store कर सकता है। Static Variable को Register में Store नहीं किया जा सकता है, क्योंकि एक ही Variable के लिए एक से अधिक Storage Specifier का use नहीं कर सकते हैं।

Example


#include <stdio.h>

int main()

{

register int a; // variable a is allocated memory in the CPU register. The initial default value of a is 0. 

printf(“%d”,a);

}

Output


0

External Storage Class

External Storage Class का use Compiler को यह Inform करने के लिए किया जाता है, कि Extern के रूप में Define Variable को Program में कहीं और External Linkage के साथ Define किया गया है। Extern के रूप में Define Variable को कोई Memory Allocate नहीं की जाती है।

यह केवल Declaration है, और यह Specify करता है, कि Variable Program में कहीं और Define किया गया है। External Integral Type का Default Initial Value (0) होता है। एक External Variable को कई बार Define किया जा सकता है, लेकिन इसे केवल एक बार Intialize किया जा सकता है।

यदि किसी Variable को External Define किया जाता है, तो Compiler उस Variable को Program में Initialize करने के लिए Search करता है, जो External या Static हो सकता है। यदि ऐसा नहीं है, तो Compiler Error दिखाएगा।

Example

Title


#include <stdio.h>

int main()

{

extern int a; // Compiler will search here for a variable defined and initialized somewhere in the program or not. 

printf(“%d”,a);

}

int a = 20;

Output


20

c programming

Data Types

Data Types

C Language में जब भी हम किसी Data या Information Store करने के लिए कोई Variable बनाते है| तब हमे उस Variable को Declare करते समय ये भी Declare करना पड़ता है, कि वो Variable किस Type का Data Store करने वाला है| ये Data Type (intcharfloatdouble) कुछ भी हो सकते है|

इन Data Type को देख कर पता चलता है, कि Variable में किस Type की Value Store होने वाला है| जैसे कि int Data Type से बने Variable में हम Integer Value को Store करते है, Char Data Type से बने Variable में हम Character Type के Data को Store करते है| तथा Float Data Type के द्वारा बने Variable में हम Floating Point वाले Value को Store करते है |

Variable Declare करते समय उसका Type इसलिए Declare करते है, क्योकि Compiler जब Source Code को Compile करके Machine Code में Convert करेगा| तब Compiler उस Data Type के हिसाब से उस Variable के लिए RAM में कुछ Memory Allocate करेगा |

Types of Data Types

Data Types तीन प्रकार के होते हैं –

Primary Data Type

ये Independent Data Type होते हैं, जिनका Use सामान्यतः किसी Variable को Declare करने के लिए किया जाता है। इसे Basic Simple या Primitive Data Type भी कहते हैं। C Language में निम्न प्रकार के Primitive Data Type होते हैं।

  • int data type
  • float data type
  • char data type
  • void data type
  • Integer Data Types
  • int: यह Signed Integers को Represent करता है। यह आम तौर पर 4 Bytes Memory Space लेता है, और -2,147,483,648 से 2,147,483,647 तक Value Store कर सकता है।
  • short int: -32,768 से 32,767 की Value Range के साथ, 2 Bytes Memory Space लेने वाले छोटे Signed Integer को Represent करता है।
  • long int: लगभग -2 Billion से +2 Billion के Range के साथ, 4 Bytes वाले Large Signed Integer के लिए use किया जाता है।
  • unsigned int: Unsigned Int (Non-Negative Integer) को Represent करता है, यह 0 से 4,294,967,295 तक Value Store कर सकता है।
  • unsigned short int: 0 से 65,535 तक के Smaller Unsigned Integer Value Store कर सकता है।
  • unsigned long int: Large Unsigned Integer के लिए use किया जाता है, जिसका Range 0 से लेकर लगभग 4.2 Billion तक होता है।

Example


#include <stdio.h>

int main() {
int age = 30;
short int score = 95;
long int population = 8000000;
unsigned int count = 100;
unsigned short int limit = 65535;
unsigned long int distance = 250000;

printf(“Age: %d\n”, age);
printf(“Score: %hd\n”, score);
printf(“Population: %ld\n”, population);
printf(“Count: %u\n”, count);
printf(“Limit: %hu\n”, limit);
printf(“Distance: %lu\n”, distance);

return 0;
}

  • Floating-Point Data Types
  • float : 4 Bytes Memory Space लेने वाले Single-Precision Floating-Point Number को Represent करता है।
  • double: 8 Bytes Memory Space लेने वाले Double-Precision Floating-Point Number का Represent करता है।
  • long double: Extended-Precision Floating-Point Number को Represent करता है, आमतौर पर 10 Bytes या अधिक का use करता है।

Example


#include <stdio.h>

int main() {
float average = 87.5f;
double pi = 3.141592653589793;
long double largeNumber = 12345678901234567890.12345L;

printf(“Average: %f\n”, average);
printf(“Pi: %lf\n”, pi);
printf(“Large Number: %Lf\n”, largeNumber);

return 0;
}

  • Character Data Type

1 Byte Memory Space लेने वाले Single Character को Represent करता है। यह Single Quote में Enclosed ASCII Value या Character को Store कर सकता है।

Example


#include <stdio.h>

int main() {
char letter = ‘A’;
char symbol = ‘$’;

printf(“Letter: %c\n”, letter);
printf(“Symbol: %c\n”, symbol);

return 0;
}

  • Void Data Type

Void को रिक्त या खाली (Nothing, Empty, No value) कहते हैं| Void Data Type को Variable के साथ use नही कर सकते हैं। Void Data Type को Function Return Type की जगह use करते हैं। यदि Function का Return Type Void हैं, तो इसका मतलब यह हैं, की Function कोई भी Value Return नही करेगा । इस तरह के Data Type को Void Data Type कहते हैं  ।

Example


#include <stdio.h>

void showMessage() {
printf(“Hello, world!\n”);
}

int main() {
showMessage();
return 0;
}

User Define Data Type

किसी Programmer के द्वारा बनाये गए Data Type को User Define Data Type कहा जाता है। User Define Data Type Programmer द्वारा एक ही User-Define Name में Different Data Type के Multiple Variable को Encapsulate करने के लिए बनाए जाते हैं। यह Better Code Organization, Readability, and Maintainability की Provide करता है। C में User Define Data Type के दो मुख्य प्रकार Structure और Union हैं।

  • Structures

Structure एक Composite Data Type है, जो विभिन्न Data Type के Variable को एक साथ Combine करते है। Structure में प्रत्येक Variable को “member” या “field” के रूप में जाना जाता है। किसी Structure को Define करने का Syntax इस प्रकार है-

Syntax


struct structure_name {
data_type1 member1;
data_type2 member2;
// Add more members as needed
};

Example 

x और y Coordinates वाले 2D Point का Represent करने के लिए एक Structure को इस प्रकार Define करते है-


struct Point {
int x;
int y;
};

इस Structure के Variable बना सकते हैं, और इसके Member को इस प्रकार Access कर सकते हैं|


struct Point p1;
p1.x = 10;
p1.y = 20;

  • Union

Union एक Structure के समान ही होता है, लेकिन Union में सभी Member Same Memory Location Share करते हैं। परिणामस्वरूप, एक Union एक समय में अपने Member में से केवल एक Member का ही Value Store कर सकता है। Union तब use होते हैं, जब आपको एक ही Memory Space के साथ विभिन्न Data Type को Represent करने की आवश्यकता होती है।

Syntax


union union_name {
data_type1 member1;
data_type2 member2;
// Add more members as needed
};

Example 

Integer या Float Value को Represent करने के लिए एक Union को इस प्रकार Define करते हैं-


union Number {
int integerValue;
float floatValue;
};

इस Union का Variable बना सकते हैं, और इसके Member को इस तरह Set कर सकते हैं-


union Number num;
num.integerValue = 42;
// OR
num.floatValue = 3.14;

Derived Data Type

C में Derived Data Type वे Data Type हैं, जो Exiting Data Type को Modify करके बनाए जाते हैं। इन Modification में Base Data Type में Additional Properties या Characteristics Add करना Include है। आमतौर पर use किए जाने वाले दो Derived Data Type, Array और Pointer हैं।

  • Array

Array एक Derived Data Type है, जो Developers को एक Variable में एक ही Type के Multiple Element को Store करने की Permission देता है। इनका Widely रूप से Data के Collection (Integer या Character की List) को Store करने के लिए use किया जाता है।

Example


#include <stdio.h>

int main() {
// Define an array of integers
int numbers[5] = {10, 20, 30, 40, 50};

// Accessing and printing elements of the array
for (int i = 0; i < 5; i++) {
printf(“Element %d: %d\n”, i, numbers[i]);
}

return 0;
}

Output


Element 0: 10
Element 1: 20
Element 2: 30
Element 3: 40
Element 4: 50

  • Pointer

Pointer C में एक अन्य Essential Derived Data Type है, जो किसी अन्य Data Type का Memory Address रखता है। वे Developers को Dynamic Memory Allocation करने और Reference द्वारा Data Pass करने की सुविधा Provide करते हैं, जिससे Function Call में Efficiency बढ़ती है।

Example


#include <stdio.h>

int main() {
int number = 42;
int *ptr; // Declare a pointer variable

ptr = &number; // Assign the address of ‘number’ to the pointer

// Accessing the value using the pointer
printf(“Value of ‘number’: %d\n”, *ptr);

return 0;
}

Output


Value of ‘number’: 42

c programming

Keywords, Constants, Variables

Keywords

Keywords, Predefined Programming Language में use किए जाने वाले Reserved Word हैं, जो Compiler के लिए Special Meaning रखते हैं। Keywords Syntax का Part हैं, और इन्हें Identifier के रूप में use नहीं किया जा सकता है। C Language में कुल 32 Keywords होते हैं, जोकि निम्नलिखित है-

auto double int struct
break else long switch
case enum register typedef
char extern return union
continue for signed void
do if static while
default goto sizeof volatile
const float short unsigned

Example:


#include <stdio.h>
int main() {
   // char, int and float are keywords and used as datatypes
   char c = 'H';
   int b = 6, c;
   float _d = 7.6;
   // if and else is a keyword checking the value of b
   if(b<5)
   printf("Character Value : %c",a1);
   else
   printf("Float value : %f",_d);
   return 0;
}

Output:


Float value: 7.600000

Constants

Constants वे Value हैं, जो किसी Progrma के Execution के दौरान Fixed रहते हैं। उनका use उन Information को Store करने के लिए किया जाता है, जिन्हें Future में Modify ना किया जाना हो| C में Constants विभिन्न Type के हो सकते हैं, जिनमें Integer, Floating-Point, Character, और String शामिल हैं।

Syntax:


const data_type variable_name = value (optional) ;

Types of Constant:

Integer Constant

  • Integer Constant साधारण Variable की तरह काम करता है |
  • Integer Constant, Positive (+) या Negative (-) हो सकता है |
  • Integer Constant की Range -32768 से 32767 तक होती है |

Example:


#include <stdio.h>
int main(){
const int num = 7;       // integer Constant
printf("integer constant value : %d", num);
return 0;
}

Output:


integer constant value: 7

Character Constant

  • Character Constant Normal Variable की तरह काम करता है |
  • Character Constant सिर्फ Single Character लेता है|
  • Escape Sequences के साथ भी Character Constant use किया जाता है |

Example:


#include <stdio.h>
int main(){
const char ch = 'Hello';    // character constant
const char escape[]= "The\tLearnify"; 
// Escape sequence - Horizontal Tab and string constant
printf("Character constant : %c\n", ch);
printf("String constant : %s\n", escape);
return 0;
}

Output:


Character constant: Hello

String constant: The      Learnify

Floating-Point Constant

  • Floating-Point Constant, Normal Float Variable की तरह ही काम करता है |
  • Floating-Point Constant में Decimal Point (.) होता है |
  • अगर Floating-Point Constant की Value Integer Type की हो तो वो Decimal Point (.) लेता है |

Example:


#include <stdio.h>
int main(){
const float num1 = 5;            // floating-point constant with integer value
const float num2 = 3.525984;    // Floating-point constant
printf("Floating-point constant : %f\n", num1);
printf("Floating-point constant : %f\n", num2);
return 0;
}

Output:


Floating-point constant: 5.000000

Floating-point constant: 3.525984

String Constant

  • String Constant की Value Double Quotation Mark (” “) के अंदर लिखी जाती है |
  • String Constant Single और Multiple Characters लेता है |
  • String Constant Escape Sequences के साथ भी use करते है |

Example:


#include <stdio.h>

int main(){
const char str1 []= "H";               // String Constant with single character
const char str2 []= "Hello World";     // Normal String constant
const char str3 [] = "Hello\nWorld";  // String Constant with Escape Sequence
printf("String Constant with single character : %s\n", str1);
printf("Normal String constant : %s\n", str2);
printf("String Constant with Escape Sequence : %s\n", str3);
return 0;
}

Output:


String Constant with a single character: H

Normal String constant: Hello World

String Constant with Escape Sequence: Hello World

Variables

C Programming में Variable Memory में एक Named Location है, जो एक Value Store करता है। Variable विभिन्न प्रकार के Data को Represent कर सकते हैं, जैसे Integers, Floating-Point Numbers, Characters। प्रत्येक Variable का एक Unique Name होता है, जिसका Use Programmer उसके Store Value को Access और Modify करने के लिए करते हैं। एक Variable बनाने की Process में उसका Name Declare करना और उसका Data Type Specify करना Included है।

Declaring Variables in C

C में एक Variable Declare करने के लिए उसका Name और Data Type Specify करना होता है| जहां data_type यह Specify करता है, कि Variable किस Type का Data Hold कर सकता है। Example में Integer के लिए int, Floating-Point Numbers के लिए Float, Character के लिए char इत्यादि Include हैं। तथा Variable Name को C Programming के Naming Rules को Follow करना चाहिए| जिसके अनुसार, Variable एक Letter तथा Underscore(_) Symbole से शुरू हो सकता है, तथा इसमें Character, Digit और Underscore हो सकते हैं।

Syntax:


data_type variable_name;

Example:


int age;                                       // Declare an integer variable named ‘age’.
float price;                                // Declare a floating-point variable named ‘price’.
char grade;                              // Declare a character variable named ‘grade’.

Types of Variables in C

C में Variables को उनके Properties के Base पर कई Type में Categorized किया जा सकता है| जोकि निम्नलिखित हैं –

  • Local Variable

Local Variable किसी Function या Code के Block केअंदर Declate किए जाते हैं, और केवल उस Specific Scope के भीतर ही Accessible होते हैं। Local Variable का Scope Limited होता है, और Code के Function या Block के बाहर Accessable नहीं होते है।

Example:


#include <stdio.h>

int main() {
int localVar = 10;                                     // Declare a local integer variable.
printf(“Local variable: %d\n”, localVar);
return 0;
}

इस Example में, localVar एक Local Variable है, जिसे केवल main Function के अंदर ही Access किया जा सकता है।

  • Global Variable

Global Variable किसी भी Function के बाहर Declare किए जाते हैं, और इन्हें पूरे Program में Access किया जा सकता है। Program के Execution Time के लिए Local Variable की तुलना में Global Variable का Scope बड़ा होता है।

Example:


#include <stdio.h>

int globalVar = 20;                                          // Declare a global integer variable.

int main() {
printf(“Global variable: %d\n”, globalVar);
return 0;
}

इस Example में, globalVar एक Global Variable है, जिसे main Function के अंदर Access किया जा सकता है।

  • Constants

Constants वे Variable होते हैं, जिनके Value Initially, Initlize होने के बाद बदले नहीं जा सकते। C में const Keywords का use करके Constants को Define किया जाता हैं।

Example:


#include <stdio.h>

int main() {
const int pi = 3.14159;                                 // Declare a constant integer.
printf(“The value of pi is: %f\n”, pi);
return 0;
}

इस Example में, pi एक Constant है, जिसकी Value को Modify नहीं किया जा सकता है।

  • Static variable

Static Variable Local Variable हैं, जो Function Call में अपने Value Hold करके रखते हैं। उन्हें static Keyword का use करके Declare किया जाता है। Static Variable को Program के किसी भी Part में Access एवं Modify किया जा सकता है|

Example:


#include <stdio.h>

void incrementAndPrint() {
static int count = 0;                                        // Declare a static integer variable.
count++;
printf(“Count: %d\n”, count);
}

int main() {
incrementAndPrint();
incrementAndPrint();
incrementAndPrint();
return 0;
}

c programming

Translator : Assembler, Interpreter, Compiler

Translator

Translator एक Program या Tool को Refer करता है, जो High-Level Programming Language में लिखे गए Source Code को Machine Code या Lower-Level Representation में Convert करता है| जिसे Computer द्वारा Execute किया जा सकता है। C Language के Context में एक Translator, Source Code को Executable Code के रूप में बदलने के लिए Responsible होता है।

Type of Translator

Compiler

Compiler एक System Software है, जो High-Level Programming Language Code को Binary Format  में एक ही Step में Translate करता है| यह सभी प्रकार की Limits, Ranges, Errors आदि की जाँच करता है| लेकिन इसका Execution Time अधिक होता है, यह ज्यादा Memory Space को Occupy करता है।

Note: Compiler Error Line को छोड़कर Complete Source Code को एक बार में Machine Code में Change कर देता है। जबकि Interpreter Line by Line Convert करता है। C और C ++ Compiler Based Language हैं। java/ .net/ python आदि Compiler Based Interpreted Languages हैं। Assembler की Working Style Compiler के समान होती है।

Interpreter

यह System Software है, जो Programming Language Code को Binary Format  में Step by Step (Line by Line) Compilation होता है। यह एक Statement को Read करता है, और तब तक इसे Executed करता है, जब तक उस Statement का Execution, Complete नहीं हो जाता है। यदि कोई Program में कोई Error होता है, तो यह Compilation Process को रोक देता है।

Assembler

Assembler का use Assembly Language में लिखे गए Program को Machine Code  में Translate करने के लिए किया जाता है। Source Program एक Assembler Program का Input होता है, जिसमें Assembly Language Instruction होते हैं। Assembler द्वारा Generated, Ouput Computer द्वारा समझा जा सकने वाला Object Code या Machine Code है। Assembler मूल रूप से पहला Interface है, जो Machine के साथ Human से Communicate करने में सक्षम है।

Assembly Language में लिखे गए Code कुछ प्रकार के Mnemonics (Instruction) हैं| जैसे- ADD, MUL, MUX, SUB, DIV, MOV आदि। और Assembler मूल रूप से इन Mnemonics को Binary Code में बदलने में सक्षम है। ये Mnemonics Machine के Architecture पर भी निर्भर करते हैं।

Input/Output Statement

C Language में Input और Output Function, C Compiler Function या C Library के रूप में उपलब्ध हैं| इन सभी Functions को सामूहिक रूप से Standard I/O Library Function के रूप में जाना जाता है। यहाँ I/O का अर्थ Input और Output है, जो विभिन्न Input और और Output Statement के लिए use किया जाता है। इन I/O Function को तीन Processing Function में Categorize किया गया है।

जोकि Console Input/Output Function (Keyboard और Monitor से Related), Disk Input/Output Function (Floppy या Hard Disk  से Related), और Port Input/Output Function (Serial या Parallel Port से Related) हैं। चूंकि सभी Input/Output Function Console से Related हैं, इसलिए ये Console Input/Output Function भी हैं। Console Input/Output Function C Program के Execution से पहले तीन Main File को Access करता  है।

  • stdin: इस File का use Input प्राप्त करने के लिए किया जाता है| यह Keyboard Input File होती है, लेकिन Disk File से भी Input ले सकती है।
  • stdout: इस File का use Ouput Send करने के लिए किया जाता है| यह एक Monitor File होती है, लेकिन Ouput को Disk File या किसी अन्य Device पर भी भेज सकती है।
  • stderr: इस File का use Error Message को Display करने या Store करने के लिए किया जाता है।

C Programming में Data को Read और Write करने के लिए Input और Output Statement का use किया जाता है।ये stdio.h (standard Input/Output Header File) में Embedded किए गए हैं।

scanf() Function

Scanf () Function एक Input Function है। यह Keyboard से Different (int, char, float) Type के Data को Read करता है। इसके Control Code या Format Code का use करके Integer, Float और Character Data Read कर सकते हैं।


scanf("control strings",arg1,arg2,..............argn);

OR


scanf("control strings",&v1,&v2,&v3,................&vn);

Example 


/*Program to illustrate the use of formatted code by using the formatted scanf() function */ 
#include <stdio.h>
main()
{
char n,name[20];
int abc;
float xyz;
printf("Enter the single character, name, integer data and real value");
scanf("\n%c%s%d%f", &n,name,&abc,&xyz);
getch();
}

printf() Function

यह एक Output Function है। इसका use Text Message Display करने और Screen पर Data के Different Type (Int, Float, Char) को Display करने के लिए किया जाता है।


printf("control strings",&v1,&v2,&v3,................&vn);

OR


printf("Message line or text line");

Example


/*Below the program which show the use of printf() function*/ 
#include <stdio.h>
main()
{
int a;
float b;
char c;
printf("Enter the mixed type of data");
scanf("%d",%f,%c",&a,&b,&c);
getch();
}
c programming

Structure of C Program, Writing and Executing the First C Program

Structure of C Program

C Program में कई Part होते हैं, जो एक Specific Task को पूरा करने के लिए Work करते हैं। C Program के Main Component निम्नलिखित हैं-

  • Preprocessor Directive

Preprocessor Directive वे Instruction होते हैं, जो Code का Compilation शुरू होने से पहले Process होते हैं। इन्हे ‘#’ Symbol के साथ Prefixed करके Declare किया जाता हैं। Common Preprocessor Directive में Header File, Constant Define करना और Conditional Compilation करना शामिल है।

Example –


#include <stdio.h>
#define MAX_VALUE 100

  • Function Declaration

Function Declaration Program में use किए जाने वाले Function को Specify करती हैं। ये Declaration Function का Name, Return Type और उनके द्वारा Accept किए जाने वाले Parameter के बारे में Information Provide करते हैं। Function Declaration आमतौर पर main() Function से पहले किये जाते हैं।

Example –


int addNumbers(int a, int b);

  • Main Function

Main() Function, C Program का Entry Point है। यह Starting Point है, जहां से Execution शुरू होता है। प्रत्येक C Program में एक Main() Function होना चाहिए।

Example –


int main() {
// Code statements
return 0;
}

  • Variable Declaration

Variable Declaration Program में use किए जाने वाले Variable को Define करती हैं। ये Variable का नाम और Type Specify करते हैं। Variable को एक Block में कहीं भी Declare किया जा सकता है, लेकिन शुरुआत में उन्हें Declare करना एक Best Practice है।

Example –


int num1, num2;

  • Statements and Expression

Statement और Expression एक C Program के Fundamental Building Block हैं। जहां Statement Action करते हैं, जबकि Expression Value Generate करते हैं। इनमें Assignments, Function Calls, Loops, Conditional Statements और अन्य Statements शामिल हो सकते हैं।

Example –


int result = addNumbers(num1, num2);
printf(“The result is %d\n”, result);

  • Function Definition

Function Definition पहले Declare किए गए Function का Implementation Provide करती हैं। उनमें Actual Code होता है, जो Specific Task Perform करता है। Function Definition आमतौर पर main() Function के बाद किया जाता हैं।

Example –


int addNumbers(int a, int b) {
return a + b;
}

  • Comments

Commnet का use Code को Document और Explain करने के लिए किया जाता है। यह Compiler द्वारा अनदेखा किया जाता है, और Progrma के Execution को प्रभावित नहीं करता है। Commnet Code की Readability को बेहतर बनाने में Help करती हैं, और दूसरों के लिए Code को समझना आसान बनाती हैं। C में दो प्रकार की Commnet होते हैं – Single-Line Comment और Multi-Line Comment।

Example –


// This is a single-line comment

/* This is
a multi-line
comment */

Writing and Executing the First C Program

Prerequisites

Program लिखने से पहले सुनिश्चित करें कि आपके System पर C Compiler, Install है, क्योंकि C Program को Execute करने के लिए यह Required होता है। Popular C Compiler में GCC (GNU Compiler Collection), Clang और Microsoft Visual C++ शामिल हैं।

Step 1: Setting up the Development Environment

C Program Write और Execute करने के लिए Text Editor और C Compiler की आवश्यकता होती है। Development Environment को Setting करने के लिए Step-by-Step Guide निम्नलिखित है-

  • Choose a Text Editor: अपनी पसंद का Text Editor Choose करे, जैसे Notepad++, Visual Studio Code, या Sublime Text। ये Editor Syntax Highlighting और Code Formatting जैसी Feature Provide करते हैं, जिससे Prgramming आसान हो जाती है।
  • Install a C compiler: अपने Operating System के अनुसार Compatible C Compiler, Download और Install करें। Installation Instruction के लिए Compiler के Documentation का Reference का प्रयोग करें।

Step 2: Writing your First C Program

एक बार जब आप अपना Development Environment Set कर लें, तो अपना First C Program Write करने के लिए इन Step को Follow करें|

  • अपना Text Editor Open करे और .c Extension वाली एक New File बनाएं। Example के लिए, आप “hello_world.c” File बना सकते हैं।
  • अपने Program को #include Directive से शुरू करें, जो Compiler को आवश्यक Header File Include करने के लिए कहता है। इस Case में, हमें Basic Input और Output Operation के लिए Standard Input/Output Header File (stdio.h) Include करने की आवश्यकता है।

Example –

Title


#include <stdio.h>

  • इसके बाद main () Function को Define करें। यह Program का Entry Point होता है, क्योंकि Execution यहीं से शुरू होता है। main () Function एक Value Return (Int, void) करता है।

Example –


int main() {
// Code will go here
return 0;
}

  • इसके बाद main () Function के अंदर Program Code लिखें। Example के लिए एक Program लिखते हैं, जो “Hello, World!” Print करता है।

Example –


#include <stdio.h>

int main() {
printf(“Hello, World!\n”);
return 0;
}

  • Program File को (Ctrl+S) का Use करके Save करते है|

Step 3: Compiling and executing your C program

जब आप अपना C Program लिख लेते हैं, तो इसके बाद इसे Compile और Execute किया जाता है। जिसके आपको निम्नलिखित Steps को Follow करना होता है|

  • Terminal या Command Prompt Open करे ।
  • (cd) Command का use करके उस Directory पर Navigate करें| जहां आपने अपना C Program Save किया था।
  • C Compiler का use करके अपने C Program को Compile करें। Example के लिए, यदि आप GCC का use कर रहे हैं, तो निम्न Command Run करे|

Example –


gcc hello_world.c

-o hello_world

  • यदि आपके Program में कोई Syntax Error नहीं हैं, तो Compiler एक Executable File बनाता है। इस Example में, Executable File का नाम “hello_world” होगा।
  • Generated Executable File को Run करके अपने Program को Execute करें। Program को Execute करने के लिए Terminal या Command Prompt में निम्न Commnad Enter करें|

Example –


./hello_world

c programming

Debugging and Compiler

Debugging

Debugging, Programmers द्वारा अपने C Program में Issues Detect, Analyze और Rectify करने के लिए प्रयोग किया जाने वाला तरीका है। Debugging के द्वारा सभी प्रकार के Issues, जैसे Syntax Error और Logical Flow से लेकर Runtime Error और Memory Leak को Detect, Analyze और Rectify किया जा सकता है। Debugging का Primary Goal, Software की Desired Functionality और Performance को प्राप्त करने के लिए इन Error को Detect और Rectify करना है।

Debugging Techniques in C

  • Printing Statements: Code में Strategic Location पर Print Statement Insert करने से Program के Execution, Variable Values और Control Flow को Track करने में Help मिलती है। ये Statement Program के Behavior में Valuable Insight Provide करते हैं, और Bug के Source को Detect में Help करते हैं।
  • Using Debugging Tools: Debugger Powerful Tool हैं, जो Developer को Program Execution, Step-by-Step Analyze करने में सहायता करते हैं। Debugger Tool,  Breakpoints, Watch Variable और Stack Trace जैसे Features Provide करते हैं, जिससे Programmer Runtime के दौरान Program की स्थिति को पहचानने और समझने में सक्षम होते हैं।
  • Code Review: Peer Programming में Collaborative Code Review अक्सर उन Bugs को Detect कर सकती हैं, जिन्हें Individual Development के दौरान Ignore किया जा सकता है। Fresh Perspective और Constructive Feedback Potential Error को Detect और Rectify करने में Help करती है।

Why is Debugging Important?

  • Error Detection: Complex Program के Development Cycle में Bug आ सकते हैं, और Debugging इन Error को  Detect करने में Help करती है। यह Software Functionalty को सुनिश्चित करता है, और Intended या उपयोग के दौरान उत्पन्न होने वाली Potential Issue से बचाता है।
  • Improved Software Quality: Debugging, Issues Detect करने की सुविधा देता है, यह Developer को Release से पहले इन Issues को Resolve करके Software की Overall Quality बढ़ाने में सक्षम बनाता है। यह सुनिश्चित करता है, कि Program Specified Requirement को पूरा करता है| और एक Seamless User Experience Provide करता है।
  • Time and Cost Efficiency: Bug का Detection और Resolution, Rework और Maintenance करने के लिए आवश्यक Time और Effort को कम करता है। Development Phase के दौरान Debugging में Time Invest करके Developer महत्वपूर्ण Resource को बचा सकते हैं| जो अन्यथा Post-Production Issue को Resolve करने पर Waste किए जाएंगे।

Compiler

Compiler एक Software Tool है, जो एक Programming Language में Write किये गए Source Code का एक ऐसे रूप में Translate करता है, जिसे सीधे Computer द्वारा Execute किया जा सकता है। यह Code को Machine Language Instruction में Convert करने के लिए Analysis और Transformation के विभिन्न Stage को Execute करता है| जिसे Target Hardware द्वारा समझा जा सकता है। Compilation Process में Lexical Analysis, Syntax Analysis, Semantic Analysis, Optimization और Code Generation शामिल है।

Types of Compiler

Single-Pass Compiler

Single-Pass Compiler, Source Code को केवल एक बार Read करता है, तथा Start से End तक एक ही पास में Target Machine Code Generate करता है। इस प्रकार का Compiler Fast होता है, लेकिन Functionality में Limited होता है। यह Complex Language Feature को Handle में Incapableहै| जैसे Forward Declaration, जिन्हें हल करने के लिए Multiple Passes की आवश्यकता होती है। Single-Pass Compiler मुख्य रूप से Embedded Systems या Resource-Constrained Environment में use किए जाते हैं।

Multi-Pass Compiler

Single-Pass Compiler के विपरीत, Multi-Pass Compiler, Source Code को Multiple पास में Read करता हैं। प्रत्येक पास एक Specific Aspect (जैसे Lexical Analysis, Syntax Analysis, Semantic Analysis, Optimization या Code Generation) पर ध्यान Focus करता है। Compilation Process को कई Stage में Divide करके, ये Compiler अधिक Complex Language Feature को Handle कर सकते हैं, और Advance Optimization कर सकते हैं। Multi-Pass Compiler आमतौर पर General-Purpose Computing System में use किए जाते हैं।

Preprocessor

Preprocessor, Technically एक Compiler नहीं है| Preprocessor C में Compilation Process का एक Essential Component है। यह Actual Compiler को पास करने से पहले Source Code पर Textual Transformation करता है। Preprocessor #include, #define और #ifdef जैसे Directive को Handle करता है, जो Code Inclusion, Macro Substitution और Conditional Compilation की Permission देता है। इसके Output को आगे की Process के लिए Compiler में Feed किया जाता है।

Features of a Compiler

  • यह Compilation Speed को बढ़ाता है|
  • यह Machine Code के Correctness को सुनिश्चित करता है|
  • इससे Code का Meaning Change नहीं होता है|
  • यह Machine Code के Speed को भी बढ़ाता है|
  • इसके द्वारा Error को आसानी से Detect किया जा सकता है|
  • इसके द्वारा Code के Grammar को भी Check किया जा सकता है|

Uses/Application of Compilers

  • Code को Platform Independent बनाने में Help करता है।
  • Code को Syntax और Semantic Error से मुक्त बनाता है।
  • Code की Executable File Generate करता है ।
  • एक Language से दूसरी Language में Code को Translates करता है।
c programming

Structured Programming and Preprocessors

Structured Programming

Structured Programming को Modular Programming के रूप में जाना जाता है| यह एक Programming Paradigm है, जो Readable Code और Reusable Component के साथ Program बनाने की Facilities Provide करता है। सभी Modern Programming Language, Structured Programming को Support करती हैं| लेकिन Programming Language के Syntax की तरह Support के Mechanism, Different होते हैं|

Structured Programming एक Application Program को Module या Autonomous Element के Hierarchy में Divide करने के लिए Encourages करती है। प्रत्येक Element में, Readability और Maintainability में सुधार के लिए Design किए गए Related Logic के Block का use करके Code को और Structure किया जा सकता है|

Modular Programming, में एक Program को Semi-Independent Module में Divide किया जाता है, जिनमें से प्रत्येक को जरूरत पड़ने पर Call किया जाता है। C Language को Structured, Programming Language कहा जाता है, क्योंकि C Language में एक Program को Function, Procedure की मदद से छोटे Logical Functional Module या Structure में Divide किया जा सकता है।

Advantages of Structured Programming

  • यह Top-Down Implementation को प्रोत्साहित करता है, जो Code की Readability और Maintainability दोनों में सुधार करता है|
  • यह Code Reusbility को Increase करता है।
  • यह User Friendly और Easly Understandble, Easy to Learn है।
  • Words और Symbol, English Vocabulary के समान है|
  • Code लिखने के लिए कम समय की आवश्यकता होती है।
  • Programs को Maintain रखना ज्यादा आसान होता है।

Disadvantages of Structured Programming

  • एक High Level Language को Translator द्वारा Machine Language में Translate करना पड़ता है| जोकि Time Consuming Process है|
  • Equivalent Assembly Language Program की तुलना में Translator द्वारा Generated Object Code, Incapable हो सकता है|

Preprocessors

Preprocessors सबसे महत्वपूर्ण और Useful Concept में से एक हैं। Preprocessors, Programmers में Macros को Define करने की Permission देता है| C Programming में Preprocessors को CPP के नाम से भी जाना जाता है।

Preprocessors Compiler को Code Compilation से पहले आवश्यक Processing करने के Instruction Provide करते हैं।’Pre’ का Meaning है – पहले| और ‘Processor’ का Meaning है – कुछ बनाना। यह Compiler का हिस्सा नहीं है,; लेकिन इसे Compilation Process में एक अलग Step के रूप में माना जाता है।

Example – main.c एक C File है, जिसे Preprocessor Process करते हैं| Next Step में यह File Compile हो जाता है, और यह (.obj) Extension के साथ एक Object File बनाता है। उसके बाद (.obj) File को (.exe) File Format में Convert करने के लिए Standard Library Function से जोड़ा जाता है, और फिर इसे Execute किया जाता है।

C Preprocessor Directives

यह Compiler को Compile करने से पहले Source Code को Preprocess करने के लिए Instruction देता है। Preprocessor Directives मुख्य रूप से Command के रूप में use किए जाते हैं। C में, सभी Preprocessor Directives hash/pound(#) Symbol से शुरू होते हैं। Programmer, Program में कहीं भी Preprocessor Directives का use कर सकते हैं। लेकिन Program की शुरुआत में Preprocessor Directives का use करना सबसे अच्छा होता है।

Syntax – #define PI 3.14

Type of Preprocessor Directives

Macros

Macros एक Program में Code के Important Part होते हैं, जिन्हें कुछ नाम दिया जाता है। जब भी Compiler इस नाम को Face करता है, तो Compiler नाम को Code के Actual Piece से बदल देता है। Macros को Define करने के लिए ‘#Define’ Directive का use किया जाता है।

#include <stdio.h>

// macro definition
#define LIMIT 5
int main()
{
for (int i = 0; i < LIMIT; i++) {
printf(“%d \n”,i);
}

return 0;
}

File Inclusion

इस प्रकार का Preprocessor Directive Compiler को Source Code Program में एक File Include करने को Support करता है। Program में Users द्वारा दो प्रकार की File Include की जा सकती हैं-

Header File या Standard Piles

इन Files में printf (), scanf (), आदि जैसे Pre-Defined Function की Definition होती हैं। इन Files को Program में Implement करने के लिए Include किया जाता है। Different Header Files में Different Functions को Declare की जाती है।

Example के लिए Standard I/O Function ‘iostream’ File में हैं ,जबकि String Operation करने वाले Function ‘String’ File में हैं। जहां file_name Include की जाने वाली File का नाम है।

Syntax – #include<file_name >

User-defined files

जब कोई Program बहुत बड़ा हो जाता है, तो इसे छोटी Files में Divide करना और जब भी आवश्यकता हो, उन्हें Include करना एक अच्छा Practice है। इस प्रकार की File User-Defined File हैं। इन File को इस रूप में Include किया जा सकता है|

Syntax – #include”filename

c programming

Definition and uses of Programming, Various Techniques of Programming

Programming

Programming एक Exercise या Practice है, जो हमारी Logical Thinking को Improve करता है| Programming यह निर्धारित करता है, कि Computer Program या Software की मदद से किसी Task को कैसे पूरा किया जाए। एक Computer Program में Codes होते हैं, जो Special Task Perform करने के लिए Computer पर Execute होते हैं।

यह Code Programmer द्वारा लिखा जाता है। Programming, Machine को Instructions देने की Process है| जो बताती है, कि एक Program कैसे Implement किया जाना चाहिए। Programmer एक Code Editor या IDE का Use करके Program लिखते है, जिसे Source Code कहा जाता है। यह एक Programming Language में लिखे गए Code का एक Collection है, जिसे अन्य Programmer, Read तथा Customize कर सकते हैं।

Source Code को Machine Language में बदलने की आवश्यकता होती है| ताकि Machine (Computer), Instruction को समझ सकें और Program को Execute कर सकें। Source Code को Machine Language में बदलने की इस Process को Compiling कहा जाता है। Compiled Programming Language के Example – C और C++ है ।

Use of Programming

Low-Level Programming

C Language, Low-Level Programming के लिए एक Solid Foundation Provide करता है| जिससे Developers, Hardware Resource और Memory को सीधे Manipulate कर सकते हैं। Underlying System Architecture के साथ इसका Close Relationship, Device Drivers, Embedded System और Operating System जैसे Task करने के लिए Efficient Coding Environment Provide करता है। C में Concise और Optimize Code लिखने की Ability उन Scenarios में महत्वपूर्ण है, जहां Performance और Resource Utilization महत्वपूर्ण हैं।

Systems Programming

C लंबे समय से Operating System के साथ Close Integration के कारण Systems Programming करने के लिए पसंद की Language रही है। C Programming का Use करके Developers, Operating System के API से Interact कर सकते हैं, जिससे वे System Tools और Network Protocol बना सकते हैं। File Handling और Process Management से लेकर Socket Programming और Signal Handling तक C Programming, Robust और Efficient System-Level Software के Implementation को सक्षम बनाता है।

Application Development

High-Performance Application के Development में C Programming का भी व्यापक रूप से use किया जाता है। इसकी Speed और Efficiency इसे Complex Algorithms, Numerical Computation और Scientific Simulation बनाने के लिए उपयुक्त बनाती है। C Programming, Library और Framework Graphics, Gaming, Image Processing और Cryptography सहित विभिन्न Domain के लिए Tool का एक विशाल Ecosystem Provide करते हैं।

Techniques of Programming

C एक Versatile और Widely-Used Programming Language है, जो अपनी Efficiency और Low-Level System Control Capabilities के लिए जानी जाती है। यह Programming के लिए कई Techniques और Paradigms Provide करता है, जिससे Developers को अपनी Specific Project Requirement के लिए सबसे Suitable Approach चुनने की Permission मिलती है|

Procedural programming

Procedural Programming एक Top-Down Approach है, जहां एक Program को Functions या Procedure में Organize किया जाता है। यह Program को छोटे, Manageable Task में Break करने पर जोर देता है।

Example

#include <stdio.h>

// Function to calculate the factorial of a number
int factorial(int n) {
if (n == 0 || n == 1) return 1;
return n * factorial(n – 1);
}

int main() {
int num = 5;
int result = factorial(num);
printf(“Factorial of %d is %d\n”, num, result);
return 0;
}

Object-Oriented Programming (OOP)

C Programming, Structure और Function के use के माध्यम से Object-Oriented Programming को Support करता है। हालाँकि इसमें C++ जैसी Language की तुलना में कुछ OOP Property का अभाव है, फिर भी इसका use Object बनाने और Data और Behavior को Encapsulate करने के लिए किया जा सकता है।

Example

#include <stdio.h>

// Define a structure for a circle
struct Circle {
float radius;
};

// Function to calculate the area of a circle
float calculateArea(struct Circle c) {
return 3.14159265359 * c.radius * c.radius;
}

int main() {
struct Circle myCircle = { 5.0 };
float area = calculateArea(myCircle);
printf(“The area of the circle is %.2f\n”, area);
return 0;
}

Functional programming

C में Functional Programming, Pure Function के use को Support करती है, जो State को Modify नहीं करते हैं| और Mutable Data से बचते हैं। यह Recursion और Higher-Order Function पर निर्भर करता है।

Example

#include <stdio.h>

// Function to calculate the sum of numbers from 1 to n using recursion
int sum(int n) {
if (n == 0) return 0;
return n + sum(n – 1);
}

int main() {
int num = 5;
int result = sum(num);
printf(“Sum of numbers from 1 to %d is %d\n”, num, result);
return 0;
}

Modular Programming

Modular Programming में एक Program को छोटे Modules या File में तोड़ना शामिल है, प्रत्येक Module एक Specific Task के लिए Responsibile होता है। C Programming, Header File और Source File के माध्यम से इस Approach को Implement करता है।

Example

// math_operations.h (Header File)

#ifndef MATH_OPERATIONS_H
#define MATH_OPERATIONS_H

int add(int a, int b);
int subtract(int a, int b);

#endif

// math_operations.c (Source File)
#include “math_operations.h”

int add(int a, int b) {
return a + b;
}

int subtract(int a, int b) {
return a – b;
}

// main.c (Main Program)
#include <stdio.h>
#include “math_operations.h”

int main() {
int num1 = 10, num2 = 5;
int sum_result = add(num1, num2);
int diff_result = subtract(num1, num2);
printf(“Sum: %d, Difference: %d\n”, sum_result, diff_result);
return 0;
}