আমি একটি বই পড়ছি ( বুটেনহফ, ১৯৯ with দ্বারা প্রোগ্রামিং সহ প্রোগ্রামিং ) যা সি ব্যবহার করে এবং আমি নিম্নলিখিত পংক্তিতে এসেছি:
(void)free(data);
এখানে, dataএকটি বরাদ্দ কাঠামোর কেবলমাত্র পয়েন্টার,
data = malloc(sizeof(my_struct_t));
কেন ফলাফল দেওয়া freeহচ্ছে void?
সি সম্পর্কে আমার বোঝাপড়া থেকে, এটি দুটি কারণে বোধ হয় না:
- ফ্রি ফাংশন ইতিমধ্যে ফিরে আসে
void - কোডটি রিটার্ন মান ব্যবহার করছে না (এটি কোনও ভেরিয়েবলের জন্য বরাদ্দও দেওয়া হচ্ছে না)
বইটি 1997 সালে লেখা হয়েছিল। এটি কি কোনও ধরণের উত্তরাধিকার বিষয়?
লেখক উল্লেখ করেছেন যে উদাহরণগুলি ডিজিটাল ইউনিক্স 4.0.০ ডি তে চালানো হয়েছিল, তবে আপনি যদি এখনও সেই ফলাফলটি ব্যবহার না করেন তবে কোনও ফাংশনের ফলাফল কাস্ট করার কোনও কারণ আমি এখনও কল্পনা করতে পারি না।
free()কাস্টটিকে বইয়ের একটি বিজোড় হিসাবে বিবেচনা করুন যা আপনার অনুকরণ করার দরকার নেই। এটি দীর্ঘ সময় আগে একবার আধা-প্রাসঙ্গিক ছিল, তবে এটি আর প্রাসঙ্গিক নয়।