সি তে, voidএকাধিক সম্পর্কহীন জিনিসের জন্য ব্যবহৃত হয়। এটি কীসের জন্য ব্যবহার করা হয়েছে তার উপর নির্ভর করে এর অর্থ হতে পারে ইউনিট টাইপ, খালি টাইপ বা অন্য কিছু।
যখন voidনিজেই এটি ব্যবহার করা হয় (বিপরীতে void*, শূন্যের দিকে নির্দেশক), এটি একটি ইউনিটের ধরণ, অর্থাত্ একটি প্রকারের একক মান। যে ক্রিয়াকলাপগুলি ফিরে আসে voidতাকে "কিছুই ফিরিয়ে না" বলা হয়, তবে এর প্রকৃত অর্থ হ'ল তারা কোনও তথ্য ফেরত দেয় না। তারা তথ্যের বিট ফেরত দেয় যার অর্থ তারা স্বতন্ত্র মান, অর্থাত্ একটি ইউনিটের প্রকার ধারণ করে এমন ধরণের একটি মান ফেরত দেয় ।2 0 = 1020=1
এটি কোনও খালি প্রকার নয়: কোনও ফাংশন যা খালি প্রকারটি দেয় তা কোনও মান ফেরত দিতে পারে না, কারণ এই ধরণের কোনও মূল্য নেই। কোনও ফাংশন যার রিটার্নের ধরণ খালি তা কেবল চিরকালের জন্য লুপ করতে পারে, বা প্রোগ্রামটি বাতিল করতে পারে, বা একটি ব্যতিক্রম বাড়াতে পারে ( longjmp) অন্যথায় ফিরে আসার ব্যবস্থা না করে, যেমন স্ট্যান্ডার্ড সি এর বাইরে কার্যকারিতা ব্যবহার করে অন্য থ্রেডে নিয়ন্ত্রণ স্থানান্তর করে)। বিভ্রান্তিকর জিনিসগুলি রাখতে, voidখালি টাইপের পরিবর্তে সি তে প্রচলিত (সি এর খালি টাইপ নেই)।
voidটাইপ প্রয়োজন সঞ্চয়ের বিট। যেহেতু সি প্রতিটি বস্তুকে স্টোরের পুরো, ননজারো সংখ্যক বাইট দখল করার উপর জোর দেয়, তাই এটি কোনও ধরণের অবজেক্ট তৈরি করা নিষিদ্ধ এবং মানটি ফেরত দেওয়ার জন্য একটি বিশেষ বাক্য গঠন রয়েছে ( বাদ দেওয়া মান সহ একটি বিবৃতি)। প্রকারের মানটি দেয় এমন কোনও সিনট্যাক্স নেই , তবে যখনই কোনও ফাংশন যার রিটার্ন টাইপ প্রত্যাবর্তন হয় সে মানটি সেখানে থাকে ।0voidvoidreturnvoidvoid
কোনও সম্ভাব্য প্রকারকে মঞ্জুরি দেওয়ার অর্থে সি এর নীচের ধরণ নেই। এমনকি অসম্পূর্ণ প্রকারগুলিও এর মানগুলির সাধারণ প্রকৃতি উল্লেখ করে, যেমন পয়েন্টার বা স্ট্রাক্ট বা ইউনিয়ন বা কার্যাদি। তবে void*কোনও নন-ফাংশন টাইপের পয়েন্টার: এটি অবজেক্ট পয়েন্টার টাইপের বীজগণিতের ন্যূনতম উপাদান, অর্থাৎ এটি নীচের অবজেক্ট পয়েন্টার টাইপ। সাধারণ ক্ষেত্রে ভিন্ন T*যেখানে Tকিছু অ অকার্যকর টাইপ, void*টাইপ একটি মান পয়েন্টার ধরণ নয় void, কিন্তু অনির্দিষ্ট ধরনের একটি মান পয়েন্টার ধরণ।