یہ مضمون آپ کو ایک آسان اور انتہائی بنیادی اور اہم تعارف پیش کرے گا وہ تصور جو کام کرتا ہے C میں اور مظاہرے کے ساتھ اس پر عمل کریں۔ اس مضمون میں مندرجہ ذیل نکات کا احاطہ کیا جائے گا ،
- سی میں کیا کام ہیں؟
- سی میں افعال کے فوائد
- سی میں فنکشن کی اقسام
- فنکشن کا اعلان اور تعریف
- ایک فنکشن کال کرنا
- سی میں صارف کے مقرر کردہ فنکشن کی اقسام
- کوئی دلائل منظور نہیں ہوئے اور نہ ہی واپسی کی قیمت
- کوئی دلیل نہیں گزرا لیکن واپسی کی قیمت
- دلیل گزر گئی لیکن واپسی کی کوئی قیمت نہیں
- دلیل منظور اور واپسی کی قیمت
- سی لائبریری کے کام
افعال کسی بھی پروگرامنگ زبان کے بلاکس بنا رہے ہیں۔ آسان لفظوں میں ، بیانات کے ایک سیٹ میں کام کریں ، جو ان پٹ لیتا ہے ، ایک خاص کام انجام دیتے ہیں اور پھر آؤٹ پٹ کو لوٹاتے ہیں۔
فنکشن بنانے کے پیچھے نظریہ یہ ہے کہ متعلقہ بیانات کے ایک سیٹ کو ایک ساتھ باندھ رکھنا ہے جو ایک خاص کام انجام دیتا ہے۔ لہذا ، آپ کو مختلف ان پٹ سیٹ کے ل multiple ایک ہی کوڈ کو ایک سے زیادہ بار لکھنے کی ضرورت نہیں ہے۔ آپ کو صرف مختلف ان پٹس کے لئے فنکشن کرنا ہے ، یہ دیئے گئے ان پٹ کے لئے مخصوص کام انجام دے گا اور آؤٹ پٹ کو واپس کرے گا۔ آپ جتنی دفعہ چاہیں تقریب کو کال کرسکتے ہیں۔ اس بلاگ میں ، ہم سی پروگرامنگ زبان میں افعال کے بارے میں ہر ایک اور ہر جانکاری سیکھیں گے۔
آئیے ہم سب سے بنیادی سوال کے ساتھ شروع کریں۔
سی میں کیا کام ہیں؟
کسی بھی دوسرے پروگرامنگ زبان کی طرح سی میں بھی افعال ایک جیسے ہوتے ہیں۔ یہ ایک مخصوص کام انجام دینے کے لئے کوڈوں کو جوڑنے کا ایک سیٹ ہے۔ عمل درآمد کرنے کیلئے کوڈ کا سیٹ گھوبگھرالی منحنی خطوط وحدانی میں بیان کیا گیا ہے ، یعنی ‘{}’۔
سی میں فنکشن لکھنے کا طریقہ سیکھنے سے پہلے پہلے یہ سمجھیں کہ فوائد کیا ہیں۔
سی میں افعال کے فوائد
پروگرامنگ کی تمام زبانوں میں افعال کے فوائد عام ہیں۔
فنکشن کے پیچھے بنیادی خیال یہ ہے کہ کوڈ میں فالتوپن کو کم کیا جائے۔ فرض کریں کہ آپ کے پاس ایک ایسی فعالیت ہے جس کو ایک پروگرام میں متعدد بار انجام دینے کی ضرورت ہے ، لہذا اس کو متعدد بار لکھنے کے بجائے ، آپ اس کام کے لئے ایک فنکشن تشکیل دے سکتے ہیں اور جتنی بار چاہیں فون کرسکتے ہیں۔ دوسرا پوشیدہ فائدہ یہ ہے کہ ، اگر بعد میں آپ کی فعالیت کی منطق تبدیل ہوجائے تو آپ کو متعدد جگہوں پر آگے بڑھنے کی ضرورت نہیں ہے۔ آپ کو صرف ایک جگہ (یعنی تقریب میں) کوڈ تبدیل کرنا ہوگا اور اس کا عکس پورے پروگرام میں ظاہر ہوگا۔
ماڈیولریٹی ایک بار پھر ایک اضافی فائدہ۔ ہر ایک اور ہر چیز سمیت کوڈ کا ایک بڑا ٹکڑا لکھنا ، کوڈ کی پڑھنے کی صلاحیت کو کم کرتا ہے اور اس کا نظم کرنا مشکل بنا دیتا ہے۔ آپ فرد کو استعمال کرتے ہوئے انفرادی فعالیت کیلئے کوڈ کو حصوں میں تقسیم کرسکتے ہیں ، جو سمجھنے میں آسان اور آسان ہے کہ اس کا نظم کریں۔
فنکشن بھی تجرید فراہم کرتا ہے ، جہاں ہم کسی فنکشن کو کال کرسکتے ہیں اور داخلی عمل درآمد کو جانے بغیر آؤٹ پٹ حاصل کرسکتے ہیں۔
فنکشن سی کی اقسام کے ساتھ آگے بڑھ رہے ہیں
سی میں فنکشن کی اقسام
افعال کی دو اقسام ہیں۔
لائبریری کے کام
صارف کی وضاحت کردہ افعال
لائبریری کے افعال وہ افعال ہیں جن کی سی لائبریری میں پہلے سے ہی وضاحت کی گئی ہے جیسے strcat ()، printf ()، اسکینف () وغیرہ۔ آپ کو ان افعال کو استعمال کرنے کے ل appropriate مناسب ہیڈر فائلیں شامل کرنے کی ضرورت ہے۔
صارف کی وضاحت شدہ افعال وہ افعال ہوتے ہیں جن کی وضاحت صارف کے ذریعے ہوتی ہے۔ یہ افعال کوڈ کو دوبارہ استعمال کرنے اور وقت اور جگہ کی بچت کے ل. بنایا گیا ہے۔
اب جب ہم فنکشن بنانے کے فوائد جانتے ہیں تو آئیے سمجھتے ہیں کہ سی میں کسی فنکشن کا اعلان کیسے کریں۔
فنکشن کا اعلان اور تعریف
تقریب کا اعلان:
تقریب اعلامیہ کا نحو:
ریٹرن_ٹائپ فنکشن نام (ڈیٹا_ ٹائپ آرگ 1 ، ڈیٹا_ ٹائپ آرگ 2) انٹ ایٹ (انٹ ایکس ، انٹ یٹ) // فنکشن ڈیکلریشن
فنکشن اعلامیہ میں ، ہم فنکشن کا نام ، ان پٹ پیرامیٹر کی تعداد ، ان کے ڈیٹا ٹائپ اور فنکشن کی واپسی کی قسم کی وضاحت کرتے ہیں۔ فنکشن اعلامیہ مرتب کرنے والے کو ان دلائل کی فہرست کے بارے میں بتاتا ہے جو فنکشن ان کے ڈیٹا کی قسم اور فنکشن کی واپسی کی قسم کے ساتھ توقع کر رہے ہیں۔
فنکشن اعلامیے میں ، پیرامیٹر کے نام بتانا اختیاری ہے ، لیکن ان کے ڈیٹا کی اقسام کی وضاحت لازمی ہے۔
int add (INT، INT) // فنکشن اعلامیہ
مذکورہ بالا فنکشن دو عدد پیرامیٹر لے گا۔
سالٹیک بمقابلہ کٹھ پتلی بمقابلہ شیف
فنکشن کی تعریف
int add (INT ، INT) // فنکشن ڈیکلیئیررنس_ٹائپ فنکشن_نم (پیرامیٹرز) {فنکشن باڈی}
جیسا کہ مذکورہ تصویر میں دکھایا گیا ہے ایک فنکشن ڈیفینیشن دو حصوں پر مشتمل ہے یعنی فنکشن ہیڈر اور فنکشن باڈی
فنکشن ہیڈر: فنکشن ہیڈر سیمیکلن کے بغیر فنکشن ڈیکلیریشن کی طرح ہے۔ فنکشن ہیڈر میں فنکشن کا نام ، پیرامیٹر اور ریٹرن کی قسم شامل ہوتی ہے۔
واپسی کی قسم: ریٹرن ٹائپ ویلیو کا ڈیٹا ٹائپ ہوتا ہے جو فنکشن کے ذریعہ واپس ہوجائے گا۔ اس فنکشن سے کوئی قیمت واپس آسکتی ہے یا نہیں۔ اگر ایسا ہوتا ہے تو پھر واپس آنے والی قدر کے اعداد و شمار کی نوعیت کو بیان کرنا چاہئے ، بصورت دیگر واپسی کی قسم کو کالعدم کرنے کی ضرورت ہے۔
فنکشن کا نام: یہ اس فنکشن کا نام ہے جس کا استعمال کرتے ہوئے ہم فنکشن کو جب اور جہاں ضرورت محسوس کرسکتے ہیں۔
پیرامیٹرز: پیرامیٹرز ان پٹ ویلیو ہیں جو فنکشن میں منتقل کردیئے جائیں گے۔ اس میں دلائل کی اعداد و شمار کی اقسام ، ان کے آرڈر اور دلائل کی تعداد کے بارے میں بتایا گیا ہے جو فنکشن میں منتقل کیے جائیں گے۔ پیرامیٹرز اختیاری ہیں۔ آپ پیرامیٹرز کے بغیر بھی کام کرسکتے ہیں۔
فنکشن باڈی: فنکشن باڈی بیان کا مجموعہ ہے جو ایک خاص کام انجام دیتا ہے۔ یہ وضاحت کرتا ہے کہ فنکشن کیا کرتا ہے۔
مثال:
int add (int x، int y) {int sum = x + y واپسی (رقم)}
کسی فنکشن کی وضاحت کرنے اور استعمال کرنے سے پہلے اس کا اعلان کرنے کی تجویز کی جاتی ہے۔ C میں ، ہم ایک ہی جگہ پر تقریب کا اعلان اور وضاحت کرسکتے ہیں۔
مثال:
# شامل کریں INT شامل کریں (INT ، INT) // فنکشن اعلانیہ // فنکشن ڈیفنس انٹ اینڈ (انٹ ایکس ، انٹ y) // فنکشن ہیڈر {// فنکشن باڈی INT ٹائم = x + y ریٹرن (رقم)} // مین فنکشن int main () {int sum = add (23، 31) printf ('٪ d'، رقم) واپسی 0
جیسا کہ ہم مذکورہ مثال میں دیکھ سکتے ہیں کہ ہم فن کو کال کر رہے ہیں int sum = add (23 ، 31) بیان کا استعمال کرتے ہوئے۔ فنکشن سے لوٹی گئی قیمت کو متغیر میں جمع کیا جاتا ہے۔
اس سے پہلے کہ ہم آگے بڑھیں ، پیرامیٹ کے بارے میں سمجھنے کے لئے ایک اور اہم تصور موجود ہے۔ پیرامیٹر کی دو اقسام ہیں۔
اصل پیرامیٹر : وہ پیرامیٹرز جو انہیں کال کرتے وقت افعال تک پہنچ جاتے ہیں وہ اصل پیرامیٹر کے طور پر جانا جاتا ہے۔ مثال کے طور پر ، مذکورہ بالا مثال میں 23 اور 31 اصل پیرامیٹرز ہیں۔
رسمی پیرامیٹر : وہ پیرامیٹرز جو افعال کے ذریعہ موصول ہوتے ہیں ، انہیں رسمی پیرامیٹرز کے نام سے جانا جاتا ہے۔ مثال کے طور پر ، مذکورہ بالا مثال میں x & y رسمی پیرامیٹرز ہیں۔
آئیے جلدی سے آگے بڑھیں اور سی میں فنکشن کو بلانے کے مختلف طریقوں کو سمجھیں۔
ایک فنکشن کال کرنا
دو طریقے ہیں جن میں ہم کسی فنکشن کو کال کرسکتے ہیں:
- قدر کے لحاظ سے کال کریں
- حوالہ سے کال کریں
قدر کے لحاظ سے کال کریں
کال کے ذریعہ ویلیو کے طریقہ کار میں ، اصل پیرامیٹر کی قدر افعال کی دلیل کے طور پر منظور کی جاتی ہے۔ اصل پیرامیٹر کی قدر کو رسمی پیرامیٹرز کے ذریعہ تبدیل نہیں کیا جاسکتا۔
کال میں قدر کے طریقہ کار میں ، مختلف میموری پتے رسمی اور اصل پیرامیٹرز کے لئے مختص کیے جاتے ہیں۔ صرف اصل پیرامیٹر کی قدر کو رسمی پیرامیٹر میں کاپی کیا جاتا ہے۔
مثال:
# کالعدم کال_بی_ویالیو (int num1) {num1 = 42 printf ('nIside Function، نمبر٪ d'، num1) main int main () {int num num = 24 printf ('n تقریب سے پہلے ، نمبر٪ d' ہے ، نمبر ) کال_بائی_ویلیو (نمبر) پرنٹف ('n اس کے بعد فنکشن ، نمبر٪ dn' ، نمبر ہے) 0 0 واپس
آؤٹ پٹ
مندرجہ بالا مثال میں ، ویلیو فنکشن کے ذریعے کال کرنے سے پہلے ، نم کی قدر 24 ہوتی ہے۔ پھر ، ایک بار جب ہم فنکشن کو کال کریں اور ویلیو کو پاس کردیں ، اور اسے فنکشن کے اندر تبدیل کردیں ، تو وہ 42 ہوجاتا ہے۔ جب ہم واپس آتے ہیں اور دوبارہ ویلیو پرنٹ کرتے ہیں۔ مرکزی تقریب میں نمبر کی ، یہ 24 ہوجاتا ہے۔
حوالہ سے کال کریں
بذریعہ حوالہ ، اصل پیرامیٹر کا میموری ایڈریس بطور دلیل فنکشن میں منتقل ہوتا ہے۔ یہاں ، رسمی پیرامیٹر کے ذریعہ اصل پیرامیٹر کی قدر کو تبدیل کیا جاسکتا ہے۔
اصل اور رسمی پیرامیٹر دونوں کے لئے ایک ہی میموری ایڈریس استعمال کیا جاتا ہے۔ لہذا ، اگر رسمی پیرامیٹر کی قدر میں ردوبدل کیا گیا ہے تو ، اس کی عکاسی اصل پیرامیٹر سے بھی ہوگی۔
C میں ہم حوالہ کے ذریعہ کال پر عمل درآمد کرنے کے لئے نکات کا استعمال کرتے ہیں۔ جیسا کہ آپ ذیل کی مثال میں دیکھ سکتے ہیں ، فنکشن کال_بی__ حوالہ ایک عدد صحیح کی طرف اشارہ کر رہا ہے۔
اب ، یہ نمبر 1 متغیر اصل پیرامیٹر کے میموری ایڈریس کو محفوظ کرے گا۔ تو ، نمبر 1 کے ذریعہ دکھائے گئے میموری ایڈریس میں رکھی ہوئی قدر کو پرنٹ کرنے کے لئے ہمیں ڈیریریفرن آپریٹر یعنی * استعمال کرنے کی ضرورت ہے۔ تو ، * نمبر 1 کی قیمت 42 ہے۔
ایڈریس آپریٹر & استعمال کیا جاتا ہے کسی بھی ڈیٹا ٹائپ کے متغیر کا پتہ حاصل کرنے کے لئے۔ لہذا فنکشن کال اسٹیٹمنٹ ‘کال_بائی_ حوالہ (اور نمبر)’ میں ، نمبر کا پتہ گزر چکا ہے تاکہ اس کے پتے کا استعمال کرکے نمبر میں تبدیلی کی جاسکے۔
مثال
# شامل کریں // فنکشن ڈیفنس کال_بیائی_ حوالہ (انٹریٹ * num1) {* num1 = 42 printf ('nIside Function، نمبر٪ d'، * num1)} // مین فنکشن انٹ مین () {int num num = 24 printf ( 'n فنکشن سے پہلے ، نمبر٪ d ہے' ، نمبر) کال_بای_ حوالہ (اور نمبر) پرنٹف ('n افعال کے بعد ، نمبر٪ dn ہے' ، نمبر) واپسی 0}
آؤٹ پٹ
اس مثال میں ، اہم کام کے اندر ابتدائی طور پر ، نمبر کی قیمت 24 ہے۔ ایک بار جب یہ کال_بی__فرائض فنکشن میں منتقل ہوجاتا ہے اور رسمی پیرامیٹر کے ذریعہ قدر میں ترمیم ہوجاتی ہے تو ، یہ بھی اصل پیرامیٹر میں تبدیل ہوجاتا ہے۔ یہی وجہ ہے کہ جب ہم فنکشن کے بعد نمبر کی قیمت پرنٹ کر رہے ہیں تو وہ 42 پرنٹ کر رہا ہے۔
سی میں صارف کی وضاحت شدہ فعل کی اقسام کے ساتھ آگے بڑھ رہے ہیں
صارف کی وضاحت کی اقسام فنکشن سی میں
واپسی کی قسم اور دلائل منظور کرکے مختلف قسم کے صارف کے بیان کردہ افعال موجود ہیں۔
بغیر دلائل گزرے اور نہ ہی واپسی کی کوئی قیمت
1. کوئی دلائل منظور نہیں ہوئے اور واپسی کی کوئی قیمت نہیں
نحو:
مثال کے طور پر جاوا میں خلاصہ کیا ہے؟
تقریب کا اعلان:
باطل تقریب () فنکشن کال: فنکشن () فنکشن کی تعریف: باطل فعل () {بیانات}
مثال
# شامل کریں باطل اضافہ () باطل اضافہ () x انٹ ایکس ایکس = 20 انٹ ی = 30 انٹ سم = x + y پرنٹف ('رقم٪ d' ، رقم) main انٹ مین () {ایڈ () ریٹرن 0}
بغیر کسی دلائل سے گزرنا لیکن واپسی کی قیمت
2 کوئی دلائل منظور نہیں ہوئے لیکن واپسی کی قیمت
نحو:
تقریب کا اعلان:
INT فنکشن () فنکشن کال: فنکشن () فنکشن ڈیفینس: انٹ فنکشن () a بیانات لوٹتے ہیں}
مثال:
# شامل کریں شامل کریں () انٹ ایٹ () x انٹ ایکس ایکس = 20 انٹ ی = 30 انٹ سم = ایکس + ی ریٹرن (رقم) main انٹ مین مین () {انٹ ٹم جوڑ = شامل () پرنٹف ('رقم٪ d' ، رقم) 0 return واپس
دلائل کے ساتھ آگے بڑھتے ہوئے گزر گئے لیکن واپسی کی کوئی قیمت نہیں
3 دلیل گزر گیا لیکن واپسی کی کوئی قیمت نہیں
نحو:
تقریب کا اعلان:
باطل فعل (انٹ) فنکشن کال: فنکشن (ا) فنکشن کی تعریف: باطل فعل (انٹ ای) {بیانات}
مثال:
# شامل کریں کالعدم شامل کریں (INT ، INT) باطل اضافہ (int x، int y) {int sum = x + y واپسی (رقم)} INT اہم () {شامل (23 ، 31) واپسی 0}
استدلال گزر گیا اور واپسی کی قیمت کے ساتھ آگے بڑھ رہے ہیں
4 دلیل منظور اور واپسی کی قیمت
نحو:
تقریب کا اعلان:
انٹ فنکشن (انٹ) فنکشن کال: فنکشن (ا) فنکشن تعریف: انٹ فنکشن (انٹ ای) a بیانات لوٹتے ہیں a
مثال
# شامل کریں شامل کریں (INT ، INT) int شامل کریں (int x، int y) sum int sum = x + y واپسی (رقم) main int main () {int sum = add (23 ، 31) printf ('٪ d' ، رقم) 0 return واپس
اب آئیے جلدی سی لائبریری کے افعال کو دیکھیں جو پروگرام لکھنے کے لئے اہم ہیں۔
سی لائبریری کے کام
لائبریری کے افعال سی میں افعال ہیں جو پہلے سے طے شدہ ہیں اور بطور ڈیفالٹ موجود ہیں۔ آپ کو پروگرام میں مخصوص ہیڈر فائل کو شامل کرنا ہوگا اور آپ ہیڈر فائل میں بیان کردہ افعال استعمال کرسکتے ہیں۔ ہر ہیڈر فائل مخصوص قسم کی فعالیت فراہم کرتی ہے۔ ہیڈر فائل کی توسیع .h ہے۔
مثال کے طور پر ، پرنٹف / اسکینف افعال استعمال کرنے کے ل we ہمیں اپنے پروگرام میں stdio.h کو شامل کرنے کی ضرورت ہے ، جو معیاری ان پٹ / آؤٹ پٹ کے حوالے سے فعالیت مہیا کرتے ہیں۔
ہیڈر فائلوں کی فہرست مندرجہ ذیل ہے۔
ایک | stdio.h | معیاری ان پٹ / آؤٹ پٹ ہیڈر فائل |
2 | منٹنگ | کنسول ان پٹ / آؤٹ پٹ ہیڈر فائل |
3 | string.h | اسٹرنگ سے متعلق لائبریری کے افعال جیسے حاصل () ، پوٹس () ، وغیرہ۔ |
4 | stdlib.h | عمومی لائبریری کے افعال جیسے مالوک () ، کالوک () ، ایگزٹ () ، وغیرہ۔ |
5 | ریاضی | ریاضی کے عمل سے متعلق افعال جیسے سکریٹ () ، پاؤ () ، وغیرہ۔ |
6 | وقت | وقت سے متعلق کام |
7 | ctype.h | کریکٹر ہینڈلنگ کے افعال |
8 | stdarg.h | متغیر دلیل کے افعال |
9 | سگنل | سگنل سے نمٹنے کے افعال |
10 | setjmp.h | چھلانگ افعال |
گیارہ | لوکل | مقامی افعال |
12 | غلطی | افعال کو سنبھالنے میں خامی |
13 | assert.h | تشخیصی کام |
اب مذکورہ بالا سی افعال سے گزرنے کے بعد آپ کو ہر کام کی ہر اہمیت اور اس کو C زبان میں لاگو کرنے کے طریقوں کو سمجھنا ہوگا۔ مجھے امید ہے کہ یہ بلاگ آپ کے لئے معلوماتی اور قابل قدر ہے۔
اس طرح ہم ’’ کاموں کا C ‘‘ پر اس مضمون کے اختتام کو پہنچ چکے ہیں۔ اگر آپ مزید جاننا چاہتے ہیں تو ، چیک کریں ، ایک قابل اعتماد آن لائن سیکھنے کی کمپنی۔ ایڈورکا کا جاوا J2EE اور SOA ٹریننگ اور سرٹیفیکیشن کورس آپ کو ہائبرنیٹ اور اسپرنگ جیسے جاوا کے مختلف فریم ورکوں کے ساتھ ساتھ جاوا کے دونوں بنیادی تصورات کی تربیت کے لئے ڈیزائن کیا گیا ہے۔
ہمارے لئے ایک سوال ہے؟ برائے کرم اس بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد سے جلد آپ کے پاس مل جائیں گے۔