এই ওয়েবসাইটটি Google Analytics এবং Google Adsense এবং Giscus ব্যবহার করে। আমাদের পড়ুন
শর্তাবলী এবং গোপনীয়তা নীতি
প্রকাশিত

পার্ট ৪: সি-তে ফাংশন: সংজ্ঞা এবং ব্যবহার

লেখক
লেখক
  • avatar
    নাম
    মো: নাসিম শেখ
    টুইটার
    টুইটার
    @nasimStg

আমাদের "সি-তে শুরু করা" সিরিজের পার্ট ৪ এ আপনাকে আবার স্বাগতম! পূর্ববর্তী অংশগুলিতে, আমরা সি-এর fundamentals cover করেছি, আপনার environment setup করা, variable, data type, operator নিয়ে কাজ করা, এবং execution flow control করা সহ। এখন, আমরা প্রোগ্রামিংয়ের সবচেয়ে crucial concept গুলির মধ্যে একটি explore করতে চলেছি: function। Function আপনাকে আপনার code কে ছোট, manageable, এবং reusable block এ break down করার অনুমতি দেয়, যা আপনার প্রোগ্রামগুলিকে আরও organized, বোঝা সহজ, এবং error prone কম করে তোলে।

সুচিপত্র

সি-তে Function কি?

সি-তে, একটি function হলো code এর একটি block যা একটি specific task perform করে। আপনি একবার একটি function define করতে পারেন এবং তারপরে আপনার প্রোগ্রামের বিভিন্ন অংশ থেকে এটি multiple time call করতে পারেন, একই code বার বার rewrite না করেই। এটি code reusability promotion করে এবং আপনার প্রোগ্রামগুলিকে আরও modular করে তোলে।

Function কে আপনার main program এর মধ্যে একটি mini-program এর মতো ভাবুন। এটি কিছু input নেয় (optional), কিছু operation perform করে, এবং একটি result return করতে পারে।

সি-তে একটি Function Define করা

একটি function ব্যবহার করতে, আপনাকে প্রথমে এটি define করতে হবে। Function definition specify করে function টি কি করে। সি-তে একটি function define করার general syntax হলো:

return_type function_name(parameter_list) {
    // Body of the function: statements that perform the task
    // ...
    return value; // Optional: if the function has a return type
}

আসুন প্রতিটি অংশ break down করি:

  • return_type: এটি specify করে function execution finished করার পর যে value return করবে তার data type। function যদি কোনো value return না করে, আপনি void keyword ব্যবহার করেন।
  • function_name: এটি আপনি আপনার function কে যে নাম দেন। এটি descriptive হওয়া উচিত এবং variable এর মতো same naming convention follow করা উচিত।
  • parameter_list (optional): এটি parameters এর comma-separated list যা function input হিসাবে accept করে। প্রতিটি parameter এ একটি data type এবং একটি parameter name থাকে (যেমন, int x, float y)। function যদি কোনো parameter accept না করে, আপনি এটিকে empty leave করতে পারেন বা parentheses এর ভিতরে void ব্যবহার করতে পারেন।
  • {} (curly brace): এগুলি function এর body enclose করে, যা function এর task perform করে এমন statement ধারণ করে।
  • return value; (optional): function এর যদি void ব্যতীত একটি return_type থাকে, তবে এটি অবশ্যই return statement ব্যবহার করে সেই type এর একটি value return করতে হবে।

একটি Simple Function এর উদাহরণ:

এখানে একটি function যা দুটি integer input হিসাবে নেয় এবং তাদের sum return করে:

#include <stdio.h>

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

int main() {
    int num1 = 10;
    int num2 = 5;
    int result = addNumbers(num1, num2);
    printf("The sum is: %d\n", result);
    return 0;
}

এই উদাহরণে:

  • int হলো return_type
  • addNumbers হলো function_name
  • int a, int b হলো parameter_list, যা indicate করে function দুটি integer parameter accept করে যার নাম a এবং b
  • curly brace এর ভিতরের code a এবং b এর sum calculate করে এবং এটি sum variable এ store করে।
  • return sum; calculated sum return করে।

ফাংশন ডিক্লারেশন (প্রোটোটাইপ)

একটি function declaration, যা function prototype নামেও পরিচিত, compiler কে একটি function এর existence সম্পর্কে বলে এটি actually define করার আগে। এটি function এর return type, name, এবং parameter list specify করে। Function declaration সাধারণত আপনার প্রোগ্রামের শুরুতে (main function এর আগে) বা একটি header file এ রাখা হয়।

একটি function declaration এর syntax function definition এর similar, কিন্তু এটি একটি semicolon ; দিয়ে শেষ হয় এবং function body include করে না:

return_type function_name(parameter_list);

উদাহরণ:

#include <stdio.h>

// Function declaration (prototype)
int addNumbers(int a, int b);

int main() {
    int num1 = 10;
    int num2 = 5;
    int result = addNumbers(num1, num2);
    printf("The sum is: %d\n", result);
    return 0;
}

// Function definition
int addNumbers(int a, int b) {
    int sum = a + b;
    return sum;
}

যদি function definition code এ call করার আগে প্রদর্শিত হয় তবে এটি strict necessary নয়, তবে larger program গুলিতে function declare করা good practice, কারণ এটি incorrect function usage সম্পর্কিত error ধরতে compiler কে সাহায্য করে।

একটি Function Calling (Invoking)

আপনি যে function define করেছেন তা ব্যবহার করতে, আপনাকে এটি call বা invoke করতে হবে। এটি কেবল function name follow করে parentheses () লিখে, এবং parentheses এর ভিতরে প্রয়োজনীয় arguments (parameters এর জন্য মান) প্রদান করে করা হয়।

একটি Function Calling এর সিনট্যাক্স:

function_name(argument_list);

আমাদের addNumbers example এ, main function এ addNumbers(num1, num2) হলো একটি function call। num1 (10) এবং num2 (5) এর মানগুলি addNumbers function এ argument হিসাবে pass করা হয়।

যদি একটি function একটি value return করে, আপনি সেই value একটি variable এ store করতে পারেন বা expression এ সরাসরি এটি ব্যবহার করতে পারেন।

int result = addNumbers(10, 5); // Returned value 'result' এ store করুন
printf("The sum is: %d\n", addNumbers(7, 3)); // returned value printf এ সরাসরি ব্যবহার করুন

Function এর প্রকারভেদ

Function গুলি argument accept করে কিনা এবং তারা value return করে কিনা তার উপর ভিত্তি করে সি-তে वर्गीकृत করা যেতে পারে:

  1. Arguments এবং Return Value সহ Function: এই function গুলি arguments এর মাধ্যমে কিছু input নেয় এবং একটি result return করে। আমাদের addNumbers function এই ধরণের একটি উদাহরণ।

  2. Arguments সহ Function কিন্তু Return Value নেই: এই function গুলি input arguments এর উপর ভিত্তি করে কিছু task perform করে কিন্তু কোনো specific value return করে না। তাদের return_type হলো void

    \#include \<stdio.h\>

    void printMessage(char message[]) {
        printf("Message: %s\\n", message);
    }

    int main() {
        printMessage("Hello from the function\!");
        return 0;
    }
  1. No Arguments সহ Function কিন্তু Return Value আছে: এই function গুলি কোনো input নেয় না কিন্তু একটি specific value return করে।
    \#include \<stdio.h\>

    int getConstantValue() {
        return 42;
    }

    int main() {
        int value = getConstantValue();
        printf("The constant value is: %d\\n", value);
        return 0;
    }
  1. No Arguments এবং No Return Value সহ Function: এই function গুলি কোনো input এর প্রয়োজন ছাড়াই বা কোনো result return না করে একটি task perform করে। তাদের return_type হলো void, এবং তাদের একটি empty parameter list থাকে।
    \#include \<stdio.h\>

    void printSeparator() {
        printf("--------------------\\n");
    }

    int main() {
        printSeparator();
        printf("Some data here.\\n");
        printSeparator();
        return 0;
    }

main Function

আপনি আমাদের পূর্ববর্তী সমস্ত উদাহরণে main function এর সাথে ইতিমধ্যেই encounter করেছেন। main function সি-তে একটি special function যা আপনার প্রোগ্রামের entry point হিসাবে কাজ করে। আপনি যখন একটি সি প্রোগ্রাম run করেন, execution সর্বদা main function থেকে শুরু হয়। প্রতিটি সি প্রোগ্রামে ঠিক একটি main function থাকতে হবে।

Function ব্যবহার করার সুবিধা

  • Modularity: Function complex problem গুলিকে ছোট, আরও manageable unit এ break down করতে সাহায্য করে।
  • Reusability: আপনি আপনার প্রোগ্রামের বিভিন্ন অংশ থেকে একটি function multiple time call করতে পারেন, code duplication avoid করে।
  • Organization: Function আপনার code কে আরও organized এবং read এবং understand করা সহজ করে তোলে।
  • Maintainability: যদি আপনাকে একটি specific task modify করতে হয়, আপনাকে সংশ্লিষ্ট function এর মধ্যে code change করতে হবে, multiple place এ একই code search এবং modify করার পরিবর্তে।

এরপর কি?

আমাদের "সি-তে শুরু করা" সিরিজের পরবর্তী অংশে, আমরা সি-তে array এবং string নিয়ে কীভাবে কাজ করতে হয় তা explore করব, যা data collection store এবং manipulate করার জন্য essential। আপনার সি প্রোগ্রামিং skill continue building করতে tuned থাকুন!


পরামর্শ:

This content provides a comprehensive introduction to functions in C for beginners, explaining their definition, declaration, usage, and benefits.

এই আর্টিকেলে আলোচিত বিষয়:

  • সি-তে ফাংশন
  • ফাংশন সংজ্ঞা এবং ডিক্লারেশন
  • ফাংশন কলিং এবং আর্গুমেন্ট
  • সি-তে ফাংশনের প্রকারভেদ
  • ফাংশন ব্যবহারের সুবিধা
  • main ফাংশন
  • ফাংশন প্রোটোটাইপ
  • ফাংশন রিটার্ন টাইপ
  • ফাংশন প্যারামিটার এবং আর্গুমেন্ট
  • ফাংশন স্কোপ এবং লাইফটাইম