ক্ষমা যদি এই প্রশ্নটি নিষ্প্রভ হয়। নিম্নলিখিত প্রোগ্রাম বিবেচনা করুন:
#include <stdio.h>
int main() {
int i = 1;
i = i + 2;
5;
i;
printf("i: %d\n", i);
}
উপরের উদাহরণে, বিবৃতিগুলি 5;এবং i;সম্পূর্ণরূপে অতিরিক্ত অতিরিক্ত বলে মনে হয়, তবুও কোডটি পূর্বনির্ধারিতভাবে সতর্কতা বা ত্রুটি ছাড়াই কোড সংকলন করে (তবে, জিসিসি warning: statement with no effect [-Wunused-value]যখন চালিত হয় তখন একটি সতর্কতা নিক্ষেপ করে না -Wall)। প্রোগ্রামের বাকি অংশগুলিতে তাদের কোনও প্রভাব নেই, সুতরাং কেন তারা প্রথম স্থানে বৈধ বিবৃতি হিসাবে বিবেচিত হবে? সংকলক কি কেবল এগুলি উপেক্ষা করে? এই ধরনের বিবৃতি অনুমতি দেওয়ার কোনও সুবিধা আছে কি?
;এটি পরে রাখার মাধ্যমে একটি বিবৃতি হতে পারে। এক্সপ্রেশন যখন বক্তব্য হতে পারে না সে সম্পর্কে আরও বিধি যুক্ত করার জন্য এটি ভাষা জটিল করে তুলবে
printf()? বিবৃতি 5;মূলত বলেন, "যাই হোক না কেন না 5করে (কিছুই না) এবং ফলাফল উপেক্ষা করি। আপনার বিবরণ printf(...)হল" যাই হোক না কেন না printf(...)করে এবং ফলাফল উপেক্ষা করা (থেকে ফেরত মান printf()) "। সি ঐ একই আচরণ করেন। এই যেমন কোড জন্য করতে পারবেন (void) i;যেখানে iহয় একটি ফাংশন সময়ে একটি মাপদণ্ড আপনাকে নিক্ষেপ করে voidইচ্ছাকৃতভাবে অব্যবহৃত হিসাবে চিহ্নিত করতে।
printf()ফলস্বরূপ কার্যকর হয়, আপনি যদি মূল্যটি অবশেষে ফিরিয়ে দেন তবে তা উপেক্ষা করেও। বিপরীতে 5;এর কোনও প্রভাব নেই।