Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 21 kết quả

Đề tài: Cách tạo file Header(.h) trong lập trình C như thế nào?

  1. #1
    Ngày gia nhập
    10 2007
    Bài viết
    24

    Question Cách tạo file Header(.h) trong lập trình C như thế nào?

    Cho tôi hỏi cấu trúc của một File header(.h) ví dụ <stdio.h> trong C như thế nào?Và cách tạo ra một file header theo ý muốn.
    Các member có thể lấy một file header chuẩn (stdio.h hay iostream.h) để nói cho trực quan cũng dc.
    ??:và file header dùng cho C và C++ có khác nhau hok?
    Cám ơn...

  2. #2
    Ngày gia nhập
    01 2008
    Bài viết
    41

    Bạn mở stdio.h ra là thấy thôi mà , trong win thì nó nằm trong folder của compiler tùy loại, còn trong linux nó nằm trong /usr/include/stdio.h.
    Còn cách tạo ra một file header là save lại dưới dạng .h
    File header cho C hay C++ thì đều là .h cả thôi , còn cụ thể thì mình chưa học C++ nên kô biết đc

  3. #3
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Uhm . Thế này , file header là tập tin tiêu đề cho các hàm hay các lớp . Nói chung file này dùng để chứa khai báo cho hàm ( nếu là C ) hay cho lớp ( C++ ) . Định nghĩa hàm sẽ được đặt trong một file .cpp riêng . Sau đó muốn gọi hàm nào trong tập tin tiêu đề header vào 1 chương trình của bạn ta chỉ cần include nó trong chương trình của mình .

    Ví dụ nha : bây giờ bạn muốn xây dựng 1 hàm in_ra để in ramột câu nói nào đó và bạn muốn hàm này đặt trong 1 thư viện .h nào đó để dùng cho nhiều CT khác nhau . Cách thực hiện :

    Bước 1: khai báo hàm này trong 1 tập tin .h . Ví dụ nó có dạng void in_ra(void);

    C Code:
    1. void in_ra(void);

    Lưu tập tin này lại dưới đuôi .h . Ví dụ mình lưu là xuat.h

    Bước 2 : định nghỉa hàm này trong một tập tin cpp

    C Code:
    1. #include<xuat.h> // bat buoc phai co
    2. void in_ra(void)
    3. {
    4.  printf("chao cac ban");
    5. }

    Lưu tập tin naỳ lại với đuôi cpp . Ví dụ xuat.cpp

    Ok từ nay bạn có thể include thư viện xuat.h gồm 1 hàm con in_ra như thế vào bất cứ CT nào , chỉ cần tạo project cho nó , rùi đẩy 3 tập tin : xuat.h , xuat.cpp , ct_cua_ban.cpp vào chung 1 project . Nếu trong BC hay VC++ thì cũng có mục tạo project đó bạn. Khá dễ hiểu . Tự mò nha .
    ttecak ?

  4. #4
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Xin sửa lại tí với bạn Comeonbaby :
    C Code:
    1. #include<xuat.h> // bat buoc phai co
    2. void in_ra(void)
    3. {
    4.  printf("chao cac ban");
    5. }
    Việc #include <xuat.h> , với dấu <> thường là thư viện đã có sẵn của trình biên dịch , nằm trong thư mục Include trong thư mục cài đặt trình biên dịch .
    Với những thư viện do chính ta tạo ra ,nên include nó bằng dấu nháy kép "" .

  5. #5
    Ngày gia nhập
    10 2008
    Nơi ở
    sài gòn
    Bài viết
    422

    Nếu trong BC hay VC++ thì cũng có mục tạo project đó bạn. Khá dễ hiểu . Tự mò nha .
    phần đó là phần nào


    xem cái của mình nè,nó có cho add đâu

  6. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    2,991

    Mặc định Cách tạo file Header(.h) trong lập trình C như thế nào?

    Trích dẫn Nguyên bản được gửi bởi khoadangnguyen Xem bài viết
    Cho tôi hỏi cấu trúc của một File header(.h) ví dụ <stdio.h> trong C như thế nào?Và cách tạo ra một file header theo ý muốn.
    Các member có thể lấy một file header chuẩn (stdio.h hay iostream.h) để nói cho trực quan cũng dc.
    ??:và file header dùng cho C và C++ có khác nhau hok?
    Cám ơn...
    thật ra cũng ko có gì quá to tát nếu bạn muốn tạo 1 file .h

    bạn hãy hiểu như này nè.
    khi tôi include 1 cái .h vào chẳng qua là copy tất cả những cái code trong đó vào bài tôi thế.

    ví dụ
    xe.h:
    PHP Code:
    void viet(char *xau)
    {
     ........


    main.cpp:


    PHP Code:
    #include "xe.h"

    void main(void)
    {
        
    viet("hello");

    thì chẳng qua cũng chính là
    PHP Code:
    void viet(char *xau)
    {
     ........
    }




    void main(void)
    {
        
    viet("hello");

    ^_,^
    Mình là 1 con gà trong công nghệ.
    Nếu mình có nói gì làm bạn không vui thì mong bạn bỏ qua cho, vì cá nhân mình còn gà lắm, và mình có ý tốt thôi.

    Bùi Tấn Quang

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

    may quá có các tiền bối chỉ giáo.thanks .

  8. #8
    Ngày gia nhập
    08 2010
    Bài viết
    78

    Làm theo cách của langman là ok liền.

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

    Trời hỡi. Cái đề tài cũ đã 3 năm, đào lên rốt cuộc nói chuyện trớt quớt.

    Lý thuyết về cách sử dụng header files:

    Trong C, header được dùng cho 3 công dụng chính:

    1. Khai báo prototypes của các hàm mà chương trình cần đến (sẽ được gọi trong code). Trình dịch chỉ cần biết dạng (prototype) của hàm để so sánh với lúc gọi hàm và tạo sẵn giao diện thôi. Lúc thực sự makefile, trình nối mới dùng giao diện để nối hàm.
    vd ta có hàm xét số nguyên tố, ta viết trong 2 files:
    file thứ nhất là header (đuôi .h), chỉ chứa cái prototype như sau: int SoNguyenTo(int);
    file thứ 2 là file code (đuôi .c), chứa toàn code của hàm. Thường thì file này sẽ được compiled sẵn thành một object file (đuôi .obj)
    Dĩ nhiên là trên thực tế file header chứa rất nhiều prototypes và file code chứa rất nhiều hàm.
    Khi người ta viết một chương trình, người ta sẽ tim xem cái header nào chứa cái prototype của hàm cần dùng và include cái header đó. Ví dụ như cần hàm strstr thì include cái header string.h vào. Lưu ý là header không chứa code cho nên trình dịch không hề biết thực sự code của strstr ra sao. Lúc makefile thì trình nối mới nối code (đã dịch) của strstr vào.

    2. Header cũng được dùng để định nghĩa các macro căn bản và khai báo các constant được sử dụng trong chuơng trình.
    Ví dụ như hệ thống của bạn xác định PI là 3.14159. Nếu phải phai báo như thế ở mỗi chương trình thì vừa mất công, vừa không đảm bảo đồng nhất (lỡ có ltv khai PI=3.14 thì sao). Vì vậy các hệ thống lớn đều có nhiều file headers để quy định contants và macros.

    3. Header cũng được dùng để khai báo biến extern. Vì biến extern là biến toàn cục cho nên có nhiều người không thích. Vả lại trình độ dùng biến extern cả một file như vậy là trình độ cao. Tôi không bàn thêm về cái này. Chỉ nhắc sơ cho quý vị biết đấy là một trong những ứng dụng của header

    Ở trên là tôi nói thuần túy C. Trong C++ thì header còn dùng để chứa dạng (sườn) của class trong khi code của class chứa trong file cpp

  10. #10
    Ngày gia nhập
    12 2010
    Bài viết
    21

    Unhappy error: "struct" type redefinition khi mình copy file header giữa 2 project

    Chuyện là thế này :
    Mình có Proj1 và Proj2 ( gọi tắt là P1 và P2)
    P1 mình có xài có 1 file header : wordsruct.h
    như sau :
    Code:
    #include"stdafx.h"
    
    using namespace std;
    
    typedef struct wordstruct
    {
    	wstring word;
    	
    }WS;
    chạy ok .
    Vấn đề khi mình tạo P2 là tổng hợp của P1 và 1 project khác .
    Mình cũng cần header wordstruct.h
    Mình không nhớ là đã add new item hay existing item ,
    nhưng khi debug nó hiện lỗi như trên , nghĩa là wordstruct đã khai báo rồi . Nhưng giờ nếu xóa wordstruct.h của P2 thì lỗi thiếu định nghĩa , xóa wordstruct.h của P1 giữ lại của P2 thì chạy được .
    Vậy giờ làm sao để cắt đứt giữa 2 liên kết đây ?????

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

  1. Lập trình C++ cách tạo và sử dụng header file như thế nào
    Gửi bởi athena1610 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 29-03-2011, 10:16 AM
  2. Cách khởi tạo và gọi header file trong C++?
    Gửi bởi jlvljcky trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 09-03-2011, 10:26 PM
  3. Tài liệu lập trình C++ Tài liệu lập trình thư viện Header file trong C++
    Gửi bởi tamthientai trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 5
    Bài viết cuối: 04-10-2010, 05:43 PM
  4. Đọc thông tin header từ file MP3 như thế nào?
    Gửi bởi baokhanhk28 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 15-07-2010, 06:59 AM
  5. Thắc mắc về thêm các file thư viện Header vào chương trình C++
    Gửi bởi hacker_mubaohiem trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 22-03-2008, 08:02 AM

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