সি ভাষায় (C89/C90 পর্যন্ত) যদি কোনো ফাংশনের রিটার্ন টাইপ স্পষ্টভাবে না দেওয়া থাকে, তবে কম্পাইলার তা int ধরে নেয়। এটি ইমপ্লিসিট int (implicit int) कहলে। কিন্তু C99 স্ট্যান্ডার্ড থেকে এই ফিচার সরিয়ে ফেলা হয়েছে — এখন রিটার্ন টাইপ লিখতে হয় বাধ্যতামূলক।
উদাহরণ (পুরানো স্টাইল — C89)
#include <stdio.h>
my_function(int x) { // রিটার্ন টাইপ নেই — ইমপ্লিসিট int
return x * 2;
}
int main(void) {
printf("Value is: %d", my_function(10));
return 0;
}
আউটপুট
Value is: 20
আধুনিক সি (C99 এবং পরবর্তী) — এরর হবে
// C99/C11/C18 কম্পাইলার দিয়ে কম্পাইল করলে এরর:
// error: return type defaults to 'int' [-Werror=implicit-int]
my_function(int x) { ... }
সঠিক পদ্ধতি (সব স্ট্যান্ডার্ডে)
#include <stdio.h>
int my_function(int x) { // স্পষ্ট রিটার্ন টাইপ
return x * 2;
}
int main(void) {
printf("Value is: %d", my_function(10));
return 0;
}
সারসংক্ষেপ
- পুরানো কোডে রিটার্ন টাইপ ছাড়া ফাংশন দেখা যায়
- আধুনিক কম্পাইলার (GCC, Clang, MSVC) ডিফল্টে ওয়ার্নিং বা এরর দেয়
- সবসময় স্পষ্ট রিটার্ন টাইপ লিখুন — ভালো অনুশীলন এবং পোর্টেবিলিটির জন্য