প্রোগ্রামে যখন কতগুলো স্টেটমেন্ট কোনো নামে একটি ব্লকের মধ্যে অবস্থান করে কোনো নির্দিষ্ট কাজ সম্পাদন করে তখন ব্লকটিকে ফাংশন বলা হয়। একটি ফাংশনের দুইটি অংশ থাকে। ফাংশন ডিক্লারেশন ও ফাংশন ডেফিনেশন। যে ফাংশনের ডেফিনেশন প্রোগ্রামার দ্বারা নির্ধারিত হয়,সে ফাংশনকে ইউজার ডিফাইন্ড ফাংশন বলে। অন্যদিকে যে ফাংশনের ডেফিনেশন পূর্ব নির্ধারিত থাকে, তাকে লাইব্রেরী ফাংশন বলে। প্রোগ্রামে কোন লাইব্রেরী ফাংশন ব্যবহার করলে তার জন্য নির্দিস্ট হেডার ফাইল প্রোগ্রামের শুরুতে যুক্ত করতে হয়। তাই বলা যায় লাইব্রেরী ফাংশন এবং ইউজার ডিফাইন্ড ফাংশন এক নয়।