Page 56 - ArduinoและPOP-BOT
P. 56

56



            4.11 ตั วกระทํ าอื่ นๆ ที่ เกี่ ยวข องกั บตั วแปร


            4.11.1 cast  : การเปลี่ ยนประเภทตั วแปรชั่ วคราว


                    cast เป นตั วกระทํ าที่ ใช สั่ งให เปลี่ ยนประเภทของตั วแปรไปเป นประเภทอื่ น และบั งคั บให คํ านวณค าตั วแปร
            เป นประเภทใหม

                    รู ปแบบคํ าสั่ ง

                       (type)variable
                       เมื่ อ  Type เป นประเภทของตั วแปรใดๆ (เช น int, float, long)
                              Variable เป นตั วแปรหรื อค าคงที่ ใดๆ


                    ตั วอย างที่  4-37
                    int i;
                    float f;
                    f = 4.6;
                    i = (int) f; // now i is 3
                    ในการเปลี่ ยนประเภทตั วแปรจาก float เป น int ค าที่ ได จะถู กตั ดเศษออก ดั งนั้ น (int)4.2 และ (int)4.7

            มี ค าเท ากั นคื อ 3

            4.11.2 sizeof  : แจ งขนาดของตั วแปร

                    ใช แจ งบอกจํ านวนไบต ของตั วแปรที่ ต องการทราบค า ซึ่ งเป นทั้ งตั วแปรปกติ และตั วแปรอาเรย

                    รู ปแบบคํ าสั่ ง

                    เขี ยนได ทั้ งสองแบบดั งนี้

                       sizeof(variable)
                       sizeof variable
                       เมื่ อ Variable คื อตั วแปรปกติ หรื อตั วแปรอะเรย  (int, float, long) ที่ ต องการทราบขนาด

                    ตั วอย างที่  4-38
                    ตั วกระทํ า sizeof มี ประโยชน อย างมากในการจั ดการกั บตั วแปรอาเรย  (รวมถึ งตั วแปรสตริ งค )  ตั วอย าง

            ต อไปนี้ จะพิ มพ ข อความออกทางพอร ตอนุ กรมครั้ งละหนึ่ งตั วอั กษร ให ทดลองเปลี่ ยนข อความ

                    char myStr[] = “this is a test”;
                    int i;
                    void setup(){
                       Serial.begin(9600);
                    }
                    void loop() {
                       for (i = 0; i < sizeof(myStr) - 1; i++){
                       Serial.print(i, DEC);
                       Serial.print(“ = “);
                       Serial.println(myStr[i], BYTE);
                    }
   51   52   53   54   55   56   57   58   59   60   61