Thông báo

Collapse
No announcement yet.

Nhờ giúp đỡ vè những lệnh này trong CCS.

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Nhờ giúp đỡ vè những lệnh này trong CCS.

    #IF ; #else so với IF; else
    #ifdef và #ifndef
    những lệnh có dấu "#" trước so với những lệnh ko có dấu "#" có khác gì nhau ko vậy?
    Vậy khi nào dùng những lệnh có dấu "#" và những lệnh ko có dấu "#"
    Chẳng hạn có ví dụ:
    #if defined(__PCM__)
    .......
    #elif defined(__PCH__)
    ......
    #endif
    Những câu lệnh trên có ý nghĩa gì vậy ? Tại sao lại có cách viết như vậy?
    hoặc trong các driver điều khiển LCD...
    #ifndef PROCESS_C
    #define PROCESS_C
    .....
    #endif
    Sao họ ko bắt đầu nhảy vào đoạn chương trình mà phải làm thao tác này trước vậy ?

    Em có đọc help nhưng cũng chưa hiểu lắm và cũng không biết khi nào dũng những lệnh này. Mong ai biết chỉ dùm em nhé.
    Last edited by draknight; 28-04-2014, 01:16.

  • #2
    Đây không phải là vấn đề của CCS hay PIC, mà là kiến thức lập trình C cơ bản. Bạn cần học lại kiến thức cơ bản này, phần khai báo preprocessor.
    Phần mềm tự do hoặc không dùng máy tính nữa !.

    Comment


    • #3
      Nguyên văn bởi bqviet Xem bài viết
      Đây không phải là vấn đề của CCS hay PIC, mà là kiến thức lập trình C cơ bản. Bạn cần học lại kiến thức cơ bản này, phần khai báo preprocessor.
      Cảm ơn anh, tại em ko được đào tạo bài bản học C trước rồi mới vào VXL. Em bắt buộc phải nhảy vào VXL luôn nên phần C hơi không biết nhiều. Để em tìm hiểu lại. Cảm ơn anh.

      Comment


      • #4
        Đây là những lệnh tiền xử lý , cho phép ta " khai báo " với nhiều tình huống lựa chọn, lúc đó ta sẽ có nhiều sự lựa chọn hơn cho bài lập trình trên từng chip cụ thể .

        VD :

        /* Check the used compiler */
        #if defined(__CSMC__)
        #define _COSMIC_
        #elif defined(__RCST7__)
        #define _RAISONANCE_
        #elif defined(__ICCSTM8__)
        #define _IAR_
        #else
        #error "Unsupported Compiler!" /* Compiler defines not found */
        #endif

        lúc đó nếu ta chọn CSMC thì chương trình sài trình dịch cosmic , rcst7 thì lại sài raisonnance .v.v
        không có tên trong danh sách lựa chọn thì sẽ hiện lên báo lỗi ( Unsupported Compiler! )

        - VD trên chẳng liên quan gì đến bọn PIC cả nhưng nó mô tả cách hoạt động của lệnh tiền xử lý .

        còn if , else cũng là các câu lệnh điều kiện ... nhưng nó được dùng trong xử lý cụ thể ( thuộc hàng con cháu , nội bộ ) thay vì #if , #else ( thuộc hàng ông bà , cụ kị , tổ tông ).
        Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

        Comment

        Về tác giả

        Collapse

        draknight Tìm hiểu thêm về draknight

        Bài viết mới nhất

        Collapse

        Đang tải...
        X