หน่วยที่ 6 การสร้างฟังก์ชั่นในภาษาซี (ต่อ)

โปรโตไทป์ (Prototypes) ของฟังก์ชัน

           การเขียนโปรแกรมโปรโตไทป์ (Prototypes) หรือการเขียนโปรแกรมต้นแบบฟังก์ชัน เป็นการสร้างฟังก์ชันจะมีการเขียนชื่อฟังก์ชันรวมไว้ที่ส่วนหัวของโปรแกรมเพื่อบอกให้คอมไพเลอร์รู้จักฟังก์ชันก่อน และสามารถเรียกใช้ฟังก์ชันได้

          ตัวอย่างโปรแกรม การสร้างฟังชั่นสลับคำเพื่อนำมาใช้ในโปรแกรม

  • #include <stdio.h>
  • void Reverse();   /*ประกาศฟังก์ชั่นโปรโตไทป์เพื่อให้รู้จักฟังก์ชั่นก่อนนำไปใช้*/
  • int main()
  • {   printf("Enter a sentence: ");
  •     Reverse();
  •     return 0;
  • }
  • void Reverse()
  •  char c;
  •     scanf("%c",&c);
  •     if( c != '\n')
  •     {   Reverse();
  •         printf("%c",c);
  •     }
  • }

          ตัวอย่างโปรแกรม การสร้างฟังชั่นเลขยกกำลังเพื่อนำมาใช้งาน

  • #include <stdio.h>
  • int power(int n1,int n2);
  • int main()
  • {   int base, exp;
  •     printf("Enter base number: ");
  •     scanf("%d",&base);
  •     printf("Enter power number(positive integer): ");
  •     scanf("%d",&exp);
  •     printf("%d^%d = %d", base, exp, power(base, exp));
  •     return 0;
  • }
  • int power(int base,int exp)
  • {   if ( exp!=1 )
  •         return (base*power(base,exp-1));
  • }

 


ตัวแปรทั่วไป และตัวแปรเฉพาะที่ (global variables and local variables)

  • ตัวแปรแบบทั่วไป (global variables) คือตัวแปรที่ประกาศไว้นอกฟังก์ชัน ตัวแปรประเภทนี้ทุกส่วนของโปรแกรมสามารถเรียกใช้ได้ ทำให้ฟังก์ชันย่อยๆ และฟังก์ชันหลักสามารถเรียกใช้ตัวแปรประเภทนี้ได้ทันที
  • ตัวแปรเฉพาะที่ (local variables) เป็นตัวแปรที่ใช้งานภายในฟังก์ชันเฉพาะนั้นๆ การประกาศตัวแปรประเภทนี้จะประกาศภายในฟังก์ชัน ซึ่งจะทำให้ฟังก์ชันอื่นไม่สามารถเรียกใช้ตัวแปรนั้นได้ แต่ฟังก์ชันอื่นก็สามารถประกาศตัวแปรชื่อซ้ำกับตัวแปรนั้นได้ ซึ่งตัวแปรชื่อเดียวกันแต่ประกาศในต่างฟังก์ชันกันจะเป็นตัวแปรคนละตัวกัน และเมื่อออกจากฟังก์ชันค่าของตัวแปรชนิดนี้จะหายไป

ตัวแปรทั่วไป (global variables)

                     ตัวแปรทั่วไป (global variables) เป็นตัวแปรที่ทุกส่วนของโปรแกรมสามารถเรียกใช้ได้     การประกาศตัวแปรประเภทนี้จะประกาศไว้นอกฟังก์ชันต่าง ๆ

                              ตัวอย่างโปรแกรม การประกาศตัวแปรทั่วไป (global variables)

  • #include <stdio.h>
  • int a;            //ประกาศตัวแปรทั่วไป (global variables)
  • void Ex( ) {
  •      a = 9;
  •      printf("%d\n",a);
  • }
  • main( ) {
  •      a = 5;
  •      printf("%d\n",a);
  •      Ex( );
  •      printf("%d\n",a);
  • }
  • //การทำงานของโปรแกรมจะมีตัวแปร a เป็นตัวแปรแบบทั่วไป ซึ่งทุกส่วนของโปรแกรมสามารถเรียกใช้ และแก้ไขค่าของตัวแปร a ได้

ตัวแปรเฉพาะที่  (local variables)

                     ตัวแปรเฉพาะที่  (local variables) เป็นตัวแปรที่ใช้งานภายในฟังกชัน การประกาศตัวแปรประเภทนี้จะประกาศภายในฟังก์ชันนั้น ๆ  ซึ่งจะทำให้ฟังก์ชันต่าง ๆ มีตัวแปรชื่อเดียวกันได้

                              ตัวอย่างโปรแกรม การประกาศตัวแปรเฉพาะที่  (local variables)

  • #include "stdio.h"
  • int a;           //ประกาศตัวแปรทั่วไป (global variables)        
  • void Ex( ) {
  •      int b=30;          //ประกาศตัวแปรเฉพาะที่  (local variables)
  •      a = 15;
  •      printf("%d\n",b);
  • }
  • main( ) {
  •      a = 9;
  •      printf("%d\n",a);
  •      Ex( );
  •      printf("%d\n",a);
  • }