ฟังก์ชั่น (Function)


ฟังก์ชั่น เป็นส่วนหลักของ C เพื่อนำมาใช้เขียนโปรแกรมในแต่ละบรรทัด ซึ่งจะมีหลายชนิดของฟังก์ชั่น นำมาผสมปนเปกัน หรือถ้าต้องการฟังก์ชั่นมากกว่านี้ก็สามารถเขียนฟังก์ชันขึ้นใช้งานเองก็ได้
การสร้างฟังก์ชั่น
รูปแบบ function type function-name colota type r)
{
คำสั่ง ;
}
หรือ ชื่อประเภทของฟังก์ชั่น ชื่อฟังก์ชั่น (ชนิดข้อมูล)
{
คำสั่ง;
}

การเรียกใช้ฟังก์ชั่น
funtion-name (Data); หรือ ชื่อฟังก์ชั่น (ข้อมูล) ;

ประเภทของฟังก์ชั่น
1. ฟังก์ชั่นที่ไม่มีการส่งค่าไปและกลับ
- ไม่ต้องกำหนดชนิดข้อมูลของฟังก์ชั่น
- ไม่ต้องประกาศฟังก์ชั่นหลัง include
เช่น
#include < stdio.h >
main ( )
{ prn ( ) ;
getche ( ) ;
}
prn ( )
{ print f ( "Hello Waddeeja");
}
เช่น
#include
main ( )
{clrscr ( );
print f ("Hello");
stop ( );
}
stop ( )
{print f ("Please any Key. .");
}getche ( );

หรืออาจจะกำหนดฟังก์ชั่นไว้ด้านบนก็ได้ หรืออาจตั้งชื่อฟังก์ชั่นของฟังก์ชั่นต่าง ๆ ไว้ด้านบนก่อนก็ได้
* การส่งค่าไปในฟังก์ชั่นส่งได้หลายค่า แต่ส่งค่ากลับได้ค่าเดียว

2. ฟังก์ชั่นส่งค่าไปแต่ไม่ส่งค่ากลับ
- มีการกำหนดค่าลงไปในฟังก์ชั่นแต่จะไม่มีการส่งค่ากลับออกมาจากฟังก์ชั่น (Return)
เช่น
#include < stdio.h >
main ( )
{ char C [ 20 ] ;
clrsos ( ) ;
prnc ( c ) ;
getche ( ) ;
}
prnc (char c)
} strcpy (c, "Ha Ha Ha");
print f ("c = % s ", c);
}
- ถ้ามีการส่งค่าเข้ามาในฟังก์ชัน ต้องมีการกำหนดชนิดของข้อมูลในฟังก์ชันให้ตรงกัน โดยไม่ต้องตั้งตัวแปรใหม่ในฟังก์ชันอีก การตั้งชนิดข้อมูลรับค่าในฟังก์ชัน อาจเป็นตัวแปรเดียวกับที่ส่งมาให้ก็ได้หรืออาจเป็นคนละตัว แต่ทั้ง 2 อย่างล้วนไม่มีผลต่อกันทั้งสิ้น
#include < stdio.h >
main ( )
{
clrscs ( ) ;
pline (50);
printt ("Thank you");
stop ( ) ;
}
pline (int x):
{ for (x = a; x <=51;xtt)
printf ("-");
}
stop ( )
{print f (" pleas any key…");
getche ( ) ;
}
* เป็นการเขียนฟังก์ชันตีเส้นจากคอลัมน์ 1 ถึง 50 ชื่อฟังก์ชัน Pline และมีฟังก์ชัน stop เป็นตัวปิดท้าย
#include
main ( )
{ int sum, x ;
x = 5 ;
sum = sum x (x);
print f ("sum = %d", sum);
getche ( );
} sumx (int x)
{return (x*x);
}
* เป็นฟังก์ชันที่มีการส่งค่าไปและกลับเพียงหาค่ายกกำลังสองของตัวเลข

3. ฟังก์ชันส่งค่ากลับแต่ไม่ส่งค่าไป
- จะเรียกฟังก์ชันไปใช้งานและมีค่าส่งกลับไปใช้ด้วย เช่น
#include < stdio.h >
main ( )
{inta, num;
a = 0; num = 0;
a = input ( );
num = a*a;
print f ("num = %d ",num);
getche ( );
}
input ( )
{ int b;
print f ("input num = ");
scant (" %d", & b);
return ( b );
}

จากโปรแกรม
จะมีการตั้งให้ค่า a รับค่าจากฟังก์ชัน input และรันฟังก์ชัน input จะรับค่า b เก็บไว้ แล้วส่งค่ากับไปยังฟังก์ชันหลักรันโปรแกรมหลัก (main)
4. การส่งค่าให้ฟังก์ชันและส่งค่ากลับ (ไปและกลับ)
- ในการส่งค่าให้กับฟังก์ชันนั้น จะส่งค่าไปกี่ค่าก็ได้ แต่เวลาส่งค่ากลับไปต้องส่งค่ากลับเพียงค่าเดียวเท่านั้น
- ในการส่งค่าไป ฟังก์ชันจะต้องมีการตั้งค่ามารับตามรูปแบบหรือชนิดข้อมูลของฟังก์ชันนั้น ๆ หรือสรุปง่าย ๆ ก็คือ ตัวแปรในฟังก์ชันและในการเรียกใช้งานต้องเป็นชนิดข้อมูลเดียวกัน และมีจำนวนตัวแปรเท่ากันทั้งหมด
เช่น
#include < stdio.h >
int sum (intx, inty);
main ( )
{int a, b, num;
clrscr ( );
a = 5;
b = 3;
num = c;
num = sum (a-, b);
print f ("num = %d", num);
getche ( );
}
int sum (int x, inty)
{
return (x*y);
}