সিস্টেমস প্রোগ্রামিং ক্লাসে আমি এই পূর্বের সেমিস্টারটি নিয়েছিলাম, সিতে একটি মৌলিক ক্লায়েন্ট / সার্ভার বাস্তবায়ন করতে হয়েছিল, স্ট্রাক্টগুলি, যেমন sock_addr_in
, বা চর বাফারগুলি শুরু করার সময় (আমরা ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা পিছনে পিছনে প্রেরণ করতাম) অধ্যাপককে আমাদের কেবলমাত্র ব্যবহার করার নির্দেশ দেয় bzero
এবং memset
সেগুলি আরম্ভ করার জন্য নয়। তিনি কখনই ব্যাখ্যা করেননি কেন, এবং আমি যদি কৌতূহল করি যে এর কোনও কার্যকর কারণ আছে?
আমি এখানে দেখছি: http://fdiv.net/2009/01/14/memset-vs-bzero- মাল্টি- শোডাউন যে bzero
কেবলমাত্র স্মৃতিশক্তি শূন্যের হয়ে চলেছে তার কারণে আরও দক্ষ, তাই এটি হয় না করতে পারে এমন কোনও অতিরিক্ত চেকিং memset
করতে হবে। এটি এখনও memset
অবিচ্ছিন্নভাবে মেমরির শূন্যের জন্য একেবারে ব্যবহার না করার কারণ বলে মনে হচ্ছে না ।
bzero
অবজ্ঞাত হিসাবে বিবেচিত হয় এবং তদুপরি, এটি একটি স্ট্যান্ডার্ড সি ফাংশন নয়। ম্যানুয়াল অনুসারে, এই কারণে memset
পছন্দ করা হয় bzero
। সুতরাং কেন আপনি এখনও ব্যবহার করতে চান bzero
উপর memset
? কেবল দক্ষতা লাভের জন্য, না এটি আরও কিছু? অনুরূপভাবে, সুবিধা কি কি memset
উপর bzero
এটি নতুন প্রোগ্রামের জন্য কার্যত পছন্দের করা?
memset
"কিছুটা আরও যাচাই করা" থাকায় যে ধারণাটি সামান্য কম দক্ষ হতে পারে তা অবশ্যই অকালীন অপ্টিমাইজেশনের ক্ষেত্রে: আপনি সিপিইউ নির্দেশিকা বা দুটি বাদ দিতে যেই লাভ দেখতে পান তা লাভজনক নয় যখন আপনি আপনার বহনযোগ্যতার ক্ষতি করতে পারেন কোড। bzero
অপ্রচলিত, এবং এটি ব্যবহার না করার যথেষ্ট কারণ।