Function prototype
کمپیوٹر پروگرامنگ میں، فنکشن پروٹو ٹائپ یا فنکشن انٹرفیس ایک فنکشن کا اعلامیہ ہے جو فنکشن کے نام اور قسم کے دستخط (آرٹی، ڈیٹا کی اقسام کے پیرامیٹرز، اور واپسی کی قسم) کی وضاحت کرتا ہے، لیکن فنکشن باڈی کو چھوڑ دیتا ہے۔ اگرچہ فنکشن کی تعریف اس بات کی وضاحت کرتی ہے کہ فنکشن کیا کرتا ہے ("نفاذ")، ایک فنکشن پروٹوٹائپ محض اس کے انٹرفیس کی وضاحت کرتا ہے، یعنی۔ ڈیٹا کی کون سی اقسام اس میں داخل ہوتی ہیں اور اس سے باہر آتی ہیں۔ اصطلاح "فنکشن پروٹو ٹائپ" خاص طور پر پروگرامنگ زبانوں سی اور سی + + کے تناظر میں استعمال ہوتی ہے جہاں ہیڈر فائلوں میں افعال کے اعلامیے آگے رکھنے سے پروگرام کو ترجمہ یونٹوں میں تقسیم کرنے کی اجازت ملتی ہے، یعنی۔ ایسے حصوں میں جن کا مرتب کرنے والا علیحدہ طور پر آبجیکٹ فائلوں میں ترجمہ کر سکتا ہے، جسے لنکر کے ذریعے قابل عمل یا لائبریری میں جوڑا جا سکتا ہے۔ فنکشن کا اعلان فنکشن کی تعریف سے پہلے ہوتا ہے، جس میں دیگر متعلقہ صفات کے ساتھ نام، واپسی کی قسم، اور اسٹوریج کلاس کی تفصیلات دی جاتی ہیں۔ فنکشن پروٹوٹائپ کا استعمال اس وقت کیا جا سکتا ہے جب: ایک بیرونی قسم کی وضاحت انٹرفیس حصہ بنانا ایک پروٹوٹائپ میں، پیرامیٹر کے نام اختیاری ہوتے ہیں (اور سی/سی + + میں فنکشن پروٹوٹائپ کا دائرہ ہوتا ہے، یعنی ان کا دائرہ پروٹوٹائپ کے آخر میں ختم ہوتا ہے)، تاہم، یہ قسم تمام ترمیم کاروں کے ساتھ ضروری ہے (مثال کے طور پر۔ اگر یہ ایک پوائنٹر یا پیرامیٹر کا حوالہ ہے) سوائے اکیلے کے۔ آبجیکٹ پر مبنی پروگرامنگ میں، انٹرفیس اور تجریدی طریقے زیادہ تر ایک ہی مقصد کی تکمیل کرتے ہیں۔ مثال مندرجہ ذیل فنکشن پروٹو ٹائپ پر غور کریں: وایڈ سم (انٹیٹ اے، انٹیٹ بی) ؛ یا وایڈ سم (انٹیٹ، انٹیٹ) ؛ یا آٹو سم (انٹیٹ، انٹیٹ)-> وایڈ ؛// سی + + صرف فنکشن پروٹو ٹائپ میں فنکشن سگنیچر، فنکشن کا نام، ریٹرن ٹائپ اور ایکسیس سپیسیفائر شامل ہیں۔ اس صورت میں فنکشن کا نام "sum" ہے۔ فنکشن سگنیچر پیرامیٹرز کی تعداد اور ان کی اقسام کی وضاحت کرتا ہے۔ واپسی کی قسم "کالعدم" ہے۔ اس کا مطلب یہ ہے کہ فنکشن کوئی قدر واپس نہیں کرے گا۔ نوٹ کریں کہ پہلی مثال میں پیرامیٹر کے نام اختیاری ہیں۔ استعمال C کے ابتدائی ورژن میں، اگر کسی فنکشن کا پہلے اعلان نہیں کیا گیا تھا اور اس کا نام بائیں قوسین کے بعد ایک اظہار میں آیا تھا، تو اسے واضح طور پر ایک فنکشن کے طور پر اعلان کیا گیا تھا جو ایک انٹی واپس کرتا ہے اور اس کے دلائل کے بارے میں کچھ بھی نہیں فرض کیا گیا تھا۔ اس صورت میں مرتب کنندہ دلائل کی تعداد اور اقسام کی مرتب وقت کی توثیق کی جانچ نہیں کر سکے گا۔ C99 معیار میں پروٹوٹائپ کے استعمال کی ضرورت ہوتی ہے۔ چار مائی فنکشن (int a) ؛/* فنکشن پروٹو ٹائپ */#include <stdio.h> #include <limits.h> انٹ مین (وایڈ) {پٹچر (مائی فنکشن (-1) ؛/* درست فارمیٹ شدہ کال */پٹچر (مائی فنکشن (1.5)) ؛/* کمپائلر ٹائپ بے میل */پٹچر (مائی فنکشن ("انکورکٹ آرگ ٹائپ") کی وجہ سے انتباہ پیدا کرتا ہے ؛/* کمپائلر ایک انتباہ */پٹچر (مائی فنکشن () پیدا کرے گا ؛/* کمپائلر بہت کم دلائل */ایک = 1 میں غلطی پیدا کرے گا ؛ پٹچر (مائی فنکشن (1) فنکشن پروٹو ٹائپ کو شامل کرکے، آپ مرتب کرنے والے کو مطلع کرتے ہیں کہ فنکشن ایک عدد دلیل لیتا ہے اور آپ مرتب کرنے والے کو غلط طور پر مخصوص کالز کو پکڑنے کے قابل بناتے ہیں۔ لائبریری انٹرفیس بنانا فنکشن پروٹو ٹائپ کو ہیڈر فائل میں رکھ کر لائبریری کے لیے انٹرفیس کی وضاحت کی جا سکتی ہے۔ کلاس ڈیکلریشن C + + میں فنکشن پروٹو ٹائپ کلاس کی تعریفوں میں بھی استعمال ہوتے ہیں۔ ماڈیولر پروگرامنگ پروٹوکول (آبجیکٹ پر مبنی پروگرامنگ) تجریدی طریقہ حوالہ جات سبروٹینز سی پروگرامنگ زبان فیملی کمپیوٹر پروگرامنگ بھی دیکھیں۔