Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: hỏi về cách khai báo (chưa gặp lần nào)

  1. #1
    Ngày gia nhập
    04 2009
    Bài viết
    7

    Mặc định hỏi về cách khai báo (chưa gặp lần nào)

    static int try_rfc959(const char *, size_t, struct nf_conntrack_man *, char);
    static int try_eprt(const char *, size_t, struct nf_conntrack_man *, char);
    static int try_epsv_response(const char *, size_t, struct nf_conntrack_man *, char);

    int (*getnum)(const char *, size_t, struct nf_conntrack_man *, char);

    đây là kiủ khai báo mình chưa gặp lần nào, cũng không biết phải dùng từ khóa nào trên google để tìm hiểu nên post lên đây mong mọi người giúp đỡ
    mình cám ơn

  2. #2
    Ngày gia nhập
    01 2011
    Nơi ở
    -Mountain-
    Bài viết
    768

    Bạn muốn biết về cái gì trong khai báo ở trên thì search thôi
    static hay int hay try_rfc959 hay const char * hay size_t hay struct nf_conntrack_man * hay char ???
    Hướng dẫn C++: https://www.youtube.com/watch?v=BwLodoQdoY4&list=PL1c9Uxlo-mplJDRGdONNupgo5OCBTyGGn

  3. #3
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Trông giống như cách cách khai báo con trỏ hàm.
    Chưa thấy bao giờ là lỗi tại chưa vững tay đã lo đi mò cốt.

  4. #4
    Ngày gia nhập
    04 2009
    Bài viết
    7

    int (*getnum)(const char *, size_t, struct nf_conntrack_man *, char);

    mình ko hiểu dòng này nghĩa là gì, để mình post đoạn code đầy đủ cho các bạn xem

    Code:
    static int try_rfc959(const char *, size_t, struct nf_conntrack_man *, char);
    static int try_eprt(const char *, size_t, struct nf_conntrack_man *, char);
    static int try_epsv_response(const char *, size_t, struct nf_conntrack_man *,
                                  char);
     
     static struct ftp_search {
             const char *pattern;
             size_t plen;
             char skip;
             char term;
             enum nf_ct_ftp_type ftptype;
             int (*getnum)(const char *, size_t, struct nf_conntrack_man *, char);
     } search[IP_CT_DIR_MAX][2] = {
             [IP_CT_DIR_ORIGINAL] = {
                     {
                             .pattern        = "PORT",
                             .plen           = sizeof("PORT") - 1,
                             .skip           = ' ',
                             .term           = '\r',
                             .ftptype        = NF_CT_FTP_PORT,
                             .getnum         = try_rfc959,
                     },
                     {
                             .pattern        = "EPRT",
                             .plen           = sizeof("EPRT") - 1,
                             .skip           = ' ',
                             .term           = '\r',
                             .ftptype        = NF_CT_FTP_EPRT,
                             .getnum         = try_eprt,
                     },
             },
             [IP_CT_DIR_REPLY] = {
                     {
                             .pattern        = "227 ",
                             .plen           = sizeof("227 ") - 1,
                             .skip           = '(',
                             .term           = ')',
                            .ftptype        = NF_CT_FTP_PASV,
                             .getnum         = try_rfc959,
                     },
                     {
                            .pattern        = "229 ",
                         .plen           = sizeof("229 ") - 1,
                         .skip           = '(',
                         .term           = ')',
                         .ftptype        = NF_CT_FTP_EPSV,
                          .getnum         = try_epsv_response,
                     },
             },
    };

  5. #5
    Ngày gia nhập
    04 2009
    Bài viết
    7

    đây là code trong kernel linux, mình bây giờ phải có nhiệm vụ đọc hiểu

  6. #6
    Ngày gia nhập
    11 2010
    Bài viết
    589

    Mặc định hỏi về cách khai báo (chưa gặp lần nào)

    Nó là con trỏ hàm. Trên forum có một bài rất chi tiết về cái này rồi, tìm đi.

  7. #7
    Ngày gia nhập
    04 2009
    Bài viết
    7

    cám ơn các bạn nhìu

  8. #8
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Trích dẫn Nguyên bản được gửi bởi feeliwood Xem bài viết
    đây là code trong kernel linux, mình bây giờ phải có nhiệm vụ đọc hiểu
    Không có căn bản C, mà lại đọc hiểu kernel linux, bạn làm được mình bái làm sư phụ. :-|
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

Các đề tài tương tự

  1. Tệp tin *.lib khác *.dll khác nhau như thế nào ?
    Gửi bởi ngusaomanoi trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 18-12-2012, 05:15 PM
  2. Chính chủ cần bán CHCC 310 Minh Khai, bán chung cư 310 minh khai 87m tầng 8, cc 310 minh khai
    Gửi bởi nguyenminhanh trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 19-04-2012, 02:40 PM
  3. taị sao các biến static khi khai báo để dùng được lại phải khai báo lại trước hàm main ? ?
    Gửi bởi anhnpson trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 15-06-2011, 08:18 PM
  4. Lập trình C Thắc mắc về khai báo protoype và các hàm liên quan khi khai báo!
    Gửi bởi ganhim trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 15
    Bài viết cuối: 10-08-2010, 02:03 PM
  5. Sự khác nhau giữa các khai báo int, void, float trong khai báo hàm?
    Gửi bởi toend2008 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 06-05-2009, 07:19 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn