টাইপ কাস্টিং হল একটি ভেরিয়েবলকে এক ডেটা টাইপ থেকে অন্য ডেটা টাইপে রূপান্তর করার একটি উপায়। উদাহরণস্বরূপ, আপনি যদি একটি 'লং' মানকে একটি সাধারণ পূর্ণসংখ্যাতে সংরক্ষণ করতে চান তাহলে আপনি 'লং' থেকে 'int' টাইপ করতে পারেন। আপনি কাস্ট অপারেটর ব্যবহার করে স্পষ্টভাবে মানগুলিকে এক প্রকার থেকে অন্য প্রকারে রূপান্তর করতে পারেন নিম্নরূপ -
(type_name) expression
নিচের উদাহরণটি বিবেচনা করুন যেখানে কাস্ট অপারেটর একটি পূর্ণসংখ্যা ভেরিয়েবলের বিভাজন ঘটায় অন্য একটি ফ্লোটিং-পয়েন্ট অপারেশন হিসাবে সঞ্চালিত হয় -
উদাহরণ
#include <stdio.h> main() { int sum = 17, count = 5; double mean; mean = (double) sum / count; printf("Value of mean : %f\n", mean ); }
যখন উপরের কোডটি সংকলিত এবং কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
Value of mean : 3.400000
এখানে উল্লেখ্য যে বিভাজনের উপরে কাস্ট অপারেটরের প্রাধান্য রয়েছে, তাই যোগফলের মান প্রথমে দ্বিগুণ টাইপে রূপান্তরিত হয় এবং অবশেষে এটি একটি ডবল প্রদান করে গণনা দ্বারা ভাগ করা হয়। মান।
টাইপ রূপান্তরগুলি অন্তর্নিহিত হতে পারে যা স্বয়ংক্রিয়ভাবে কম্পাইলার দ্বারা সঞ্চালিত হয়, অথবা কাস্ট অপারেটর ব্যবহারের মাধ্যমে এটি স্পষ্টভাবে নির্দিষ্ট করা যেতে পারে। যখনই টাইপ রূপান্তর প্রয়োজন হয় তখন কাস্ট অপারেটর ব্যবহার করা ভাল প্রোগ্রামিং অনুশীলন হিসাবে বিবেচিত হয়।
পূর্ণসংখ্যা প্রচার
পূর্ণসংখ্যা প্রচার হল এমন একটি প্রক্রিয়া যার মাধ্যমে int বা স্বাক্ষরবিহীন int-এর চেয়ে পূর্ণসংখ্যার প্রকারের "ছোট" মানগুলি হয় int-এ রূপান্তরিত হয়। অথবা আনসাইনড int . একটি পূর্ণসংখ্যা −
সহ একটি অক্ষর যোগ করার একটি উদাহরণ বিবেচনা করুনউদাহরণ
#include <stdio.h> main() { int i = 17; char c = 'c'; /* ascii value is 99 */ int sum; sum = i + c; printf("Value of sum : %d\n", sum ); }
যখন উপরের কোডটি সংকলিত এবং কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
Value of sum : 116
এখানে, যোগফলের মান হল 116 কারণ কম্পাইলার পূর্ণসংখ্যার প্রচার করছে এবং প্রকৃত সংযোজন অপারেশন করার আগে 'c'-এর মানকে ASCII-তে রূপান্তর করছে।
সাধারণ পাটিগণিত রূপান্তর
সাধারণ গাণিতিক রূপান্তর পরোক্ষভাবে তাদের মানগুলিকে একটি সাধারণ প্রকারে নিক্ষেপ করার জন্য সঞ্চালিত হয়। কম্পাইলার প্রথমে পূর্ণসংখ্যা প্রচার করে; যদি অপারেন্ডের এখনও বিভিন্ন প্রকার থাকে, তাহলে সেগুলিকে সেই টাইপে রূপান্তরিত করা হয় যা নিম্নোক্ত শ্রেণিবিন্যাস-
তে সর্বোচ্চ দেখা যায়
সাধারণ গাণিতিক রূপান্তরগুলি অ্যাসাইনমেন্ট অপারেটরদের জন্য বা লজিক্যাল অপারেটর &&এবং || এর জন্য সঞ্চালিত হয় না। −
ধারণাটি বুঝতে নিচের উদাহরণটি নেওয়া যাকউদাহরণ
#include <stdio.h> main() { int i = 17; char c = 'c'; /* ascii value is 99 */ float sum; sum = i + c; printf("Value of sum : %f\n", sum ); }
আউটপুট
Value of sum : 116.000000
এখানে, এটা বোঝা সহজ যে প্রথম c পূর্ণসংখ্যায় রূপান্তরিত হয়, কিন্তু চূড়ান্ত মান দ্বিগুণ হওয়ায় স্বাভাবিক গাণিতিক রূপান্তর প্রযোজ্য হয় এবং কম্পাইলার i এবং c কে 'float'-এ রূপান্তর করে এবং একটি 'float' ফলাফল প্রদান করে।পি>