সি ভাষায় কাস্টিং অনন্য, অন্য ভাষার মতো নয়। এটি কখনই বুদ্ধিমান হয় না।
সিতে ingালাই সতর্কতার সাথে সংজ্ঞায়িত নিয়ম ব্যবহার করে মানকে এক ধরণের থেকে অন্য ধরণের রূপান্তর করে। আপনার যদি সত্যিই জানা দরকার তবে স্ট্যান্ডার্ডটি পড়ুন। অন্যথায় প্রধান পয়েন্টগুলি হ'ল:
- যদি সম্ভব হয় তবে পূর্ণসংখ্যার ধরণের মধ্যে রূপান্তর মান সংরক্ষণ করে। গন্তব্যটিতে আরও বিট থাকলে এটি প্রশস্ত হয় এবং সাধারণত নিরাপদ তবে এতে সাইন এক্সটেনশন জড়িত থাকতে পারে। সংকীর্ণ হলে, বিটগুলি নষ্ট হবে।
- পয়েন্টার ধরণের মধ্যে রূপান্তর পয়েন্টার মান সংরক্ষণ করে, তবে ফলাফলগুলি প্রায়শই অপরিজ্ঞাত হয়, প্রায়শই বহনযোগ্য নয় এবং প্রায়শই উন্নত পরিস্থিতিগুলির জন্য দরকারী।
- পূর্ণসংখ্যার পরিমাণটি যথেষ্ট বড় হলে এবং সংখ্যার পয়েন্টারগুলির মধ্যে রূপান্তর ঠিক থাকে এবং বিট প্যাটার্নটি সংরক্ষণ করে (যার অর্থ হতে পারে)। যদি পূর্ণসংখ্যা খুব ছোট হয় তবে ফলাফলটি সংজ্ঞায়িত হলেও কার্যকর নয়। একটি নিয়ম হিসাবে 'দীর্ঘ' 'শূন্য *' এর পক্ষে যথেষ্ট প্রশস্ত, তবে কোনও গ্যারান্টি নেই! এইভাবে তৈরি পয়েন্টারগুলি সমস্ত ধরণের আকর্ষণীয় উপায়ে অবৈধ হতে পারে।
- ভাসা এবং পূর্ণসংখ্যার প্রকারের মধ্যে রূপান্তর হ'ল পাটিগণিত রূপান্তরগুলি উপযুক্ত লাইব্রেরি রুটিন দ্বারা সংজ্ঞায়িত করা হয় (কাটানো নয়, গোল হয় না)।
- আপনি কোনও ফাংশনের রিটার্ন মান বাতিল করতে পারবেন। আমার কখনই নেই। এটা কিছুই করে না।
কিছু ক্যাসেট সুস্পষ্টভাবে প্রয়োগ করা হয়, এবং এর কয়েকটিতে সংকলক একটি সতর্কতা জারি করবে। সতর্কতা অবলম্বন সেরা!
Castালাইয়ের জন্য অভিধানের সংজ্ঞাটি সবচেয়ে বেশি উপেক্ষা করা হয়েছে, যেমন সহায়তা করা হয়নি। রূপান্তর বা জবরদস্তি শর্তাবলী দ্বারা অনেকগুলি বর্ণকে আরও ভালভাবে বর্ণনা করা হয়, সুতরাং সেগুলিও জানার মতো।
সি ++ অনেক জটিল, তবে আপনি এটি জিজ্ঞাসা করেননি, তাই না?