আমি তখনই পড়ছিলাম
আইএসও / আইইসি 9899: 201x কমিটির খসড়া - এপ্রিল 12, 2011
যার মধ্যে আমি 5.1.2.2.3 প্রোগ্রামের সমাপ্তির আওতায় পেয়েছি
..reaching the } that terminates the main function returns a value of 0.
এর অর্থ যদি আপনি কোনও রিটার্নের বিবৃতি নির্দিষ্ট না করেন main()
এবং প্রোগ্রামটি যদি সফলভাবে চলতে থাকে তবে মূল বন্ধের ব্রেস-এ 0 ফিরে আসবে।
তবে নিম্নলিখিত কোডটিতে আমি কোনও রিটার্নের বিবৃতি নির্দিষ্ট করে দিই না, তবে এটি 0 ফেরায় না
#include<stdio.h>
int sum(int a,int b)
{
return (a + b);
}
int main()
{
int a=10;
int b=5;
int ans;
ans=sum(a,b);
printf("sum is %d",ans);
}
কম্পাইল
gcc test.c
./a.out
sum is 15
echo $?
9 // here it should be 0 but it shows 9 why?
gcc
নিজেই (সংস্করণ 4.6.2 এর জন্য) খুব অনুরূপ একটি ভাষা সংকলন করে তবে সি এর মতো নয় এটি গনুসি 89 কে সংকলন করে - সি 89 এর উপর ভিত্তি করে একটি ভাষা "আলগাভাবে"।
return
বিবৃতিতে প্রথম বন্ধনীগুলি sum()
অপ্রয়োজনীয়। int main()
হওয়া উচিত int main(void)
।