Objective-C Programming Part I.

การเขียนโปรแกรมบน mac ก็อย่างที่บอกไปแล้วว่า มี 2 ภาษาหลักๆคือ c/c++ กับ obj-c ผมคิดว่าถ้าจะเขียน c/c++ programming ก็คิดว่าหนังสือภาษาไทยก็เยอะแล้ว เลยเขียนเกี่ยวกับ objective-c จะดีกว่า เริ่มกันเลยดีกว่า เริ่มจากการสร้าง file นามสกุล .m ขึ้นมาก่อนเช่นเป็นต้นว่าชื่อ hello.m และส่วนข้างใน hello.m ก็มี code แบบนี้

เมื่อเสร็จแล้ว ก็ save แล้วก็เปิด terminal ขึ้นมาแล้วก็สั่ง compile ด้วยคำสั่ง gcc hello.m -o hello -l objc แล้วหลังจากนั้น ก็ ทำการเรียกโปรแกรม ขึ้นมาด้วยคำสั่ง ./hello จะเห็นข้อความว่า

ดังตัวอย่างรูปข้างล่าง

terminal

ก็เป็นอันเรียบร้อยจาก code ตัวอย่าง ถ้าใครเขียนภาษา C/C++ มาก่อนจะเห็นว่ามันแทบจะไม่ต่างกันเลยจะต่างกันก็แค่ #import ถ้าเป็น ภาษา c/c++ จะใช้ #include ส่วนนามสกุลของ source นั้นจะเป็น .m ก็อธิบายตาม code ข้างบนก็คือว่า

  • #import <stdio.h> เป็นการนำ file stdio.h เข้ามาเพื่อที่ว่าเราจะได้สามารถเรียกคำสั่งที่อยู่ภายใน file stdio.h ได้ เป็นต้นว่า printf
  • int main(int argc, const char -argv[] สำหรับบรรทัดนี้ เป็น ส่วนเริ่มต้นของโปรแกรม และการทำงานต่างๆจะอยู่ระหว่าง { กับ }
  • printf(“Hello world!”); เรียกฟังชั่น printf เพื่อที่จะแสดงผลคำว่า Hello world ที่ console
  • return 0; การส่งค่า 0 กลับไปให้ยัง os

และในส่วนของการ compile น้ันเราได้ใช้ gcc เป็นเครื่องมือในการ compile โดยเราได้เรียก  gcc hello.m -o hello -l objc ก็อธิบายได้ว่า

  • -o หมายถึง output ที่ได้จากการ compile ในที่นี้ก็คือ hello
  • -l objc หมายถึงว่า เป็นการ linking กับ Objective-C Runtime library ที่ชื่อว่า objc

จากตัวอย่างข้างต้น จะเห็นว่าเราสามารถเขียนโปรแกรม และ compile ได้โดยไม่ต้องอาศัย เครื่องมือใดๆ นอกจาก gcc และ text editor สักตัว แต่การเขียนโปรแกรมโดยที่ไม่มี Tool หรือ IDE เป็นตัวช่วยเลยนั้น เป็นเรื่องที่ค่อนข้างลำบาก พอสมควร แต่อย่างไรก็ตาม เรามีเครื่องมือที่ช่วยในการเขียนโปรแกรมให้ง่ายขึ้น ที่มาพร้อมกับ mac และยังฟรีอีกด้วย นั่นคือ xcode

สำหรับตอนนี้ก็จบเพียงเท่านี้เหละครับ


7 thoughts on “Objective-C Programming Part I.”

  1. int main(int argc, const char -argv[] นี่เป็นคำสั่งคงที่ ของการเริ่มโปรแกรมเลยป่ะครับ คล้ายๆ Void main() แบบนี้ป่ะครับ

    1. มันไม่ใช่ “คำสั่ง” คงที่ครับ แต่เป็น parameter ซึ่งมันแล้วแต่ว่า Platform นั้นกำหนดไว้ว่าอย่างไร ซึ่งโดยปกติแล้ว จะประกาศ main ได้สองแบบคือ

      int main(void)

      และ

      int main( int argc, const char *argv[] )

      แต่ก็มีเหมือนกันที่ main นั้นรับ parameter ได้มากกว่านี้ เช่นอย่างของ Windows จะประกาศแบบ ก็ได้

      int main(int argc, char **argv, char **envp);

      หรืออย่างของ Mac จะใช้

      int main(int argc, char **argv, char **envp, char **apple);

      ก็ได้เช่นกัน

  2. ขอถาม 1 ข้อ ครับ
    command line ของ mac กับ ของ linux เหมือนกันหรือเปล่า

  3. ขอบคุณมากๆครับ สำหรับบทความดีๆ ผมเจอหน้า tutorial แล้วละครับ
    ขออนุญาติค่อยๆ ศึกษาไปเรื่อยๆนะครับ ^^

  4. บทความนี้ค่อนข้างนานแล้วครับ ผมว่าไปเขียนด้วย xcode เลยก็น่าจะดีกว่าครับ 🙂

  5. กว่าจะ Compile ได้ เล่นเอาเกือบท้อแล้วครับ
    ไม่เข้าใจเพราะไม่เคยได้ศึกษาที่ไหนมาเลย
    gcc ใน terminal ก็ไม่รู้จักคำสั่ง
    เลยลองโหลด xcode มาลงถึง gcc ใน terminal ได้
    ผ่านโปรแกรม Hello World เรียบร้อย แต่พอไปยังบทถัดไป
    ก็ Compile ไม่ผ่านละครับ ไม่ทราบว่าเป็นยังไง หรือต้องทำใน xcode ครับนี่

Leave a Reply