যদি ডেটা স্থিতিশীল বা গ্লোবাল ভেরিয়েবল হয় তবে এটি ডিফল্টরূপে শূন্য-পূর্ণ, তাই কেবল এটি ঘোষণা করুন myStruct _m;
যদি ডেটা স্থানীয় ভেরিয়েবল বা হিপ-বরাদ্দ অঞ্চল হয় তবে এটির memset
মতো এটি সাফ করুন :
memset(&m, 0, sizeof(myStruct));
বর্তমান সংকলক (যেমন সাম্প্রতিক সংস্করণগুলির gcc
) বাস্তবে এটি বেশ ভাল quite এটি কেবল তখনই কাজ করে যদি সমস্ত শূন্য মান (নাল পয়েন্টার এবং ভাসমান পয়েন্ট শূন্য অন্তর্ভুক্ত) সমস্ত শূন্য বিট হিসাবে উপস্থাপিত হয়, যা আমি জানি সমস্ত প্ল্যাটফর্মের ক্ষেত্রে সত্য (তবে সি স্ট্যান্ডার্ড বাস্তবায়নের অনুমতি দেয় যেখানে এটি মিথ্যা; আমি এ জাতীয় কোনও বাস্তবায়ন জানি না) ।
আপনি সম্ভবত কোড করতে পারেন myStruct m = {};
বা myStruct m = {0};
(এমনকি যদি প্রথম সদস্যটি myStruct
স্কেলার না হয়)।
আমার অনুভূতিটি হ'ল memset
স্থানীয় কাঠামোর জন্য ব্যবহার করা সবচেয়ে ভাল এবং এটি এই সত্যটি আরও ভাল করে তুলে ধরেছে যে রানটাইম সময়ে কিছু করা উচিত (যখন সাধারণত, গ্লোবাল এবং স্ট্যাটিক ডেটা সংকলন সময়ে শুরু হিসাবে বোঝা যায়, রানটাইম ছাড়াই কোনও ব্যয় ছাড়াই) ।
= {};
তবে আমি নিশ্চিত নই যে এটি বৈধ কিনা।