2011-01-21 37 views
10

Trong ngôn ngữ lắp ráp tôi sử dụng .section chỉ để nói với lắp ráp những gì phần để xuất ra ví dụLàm cách nào để chỉ định các phần đầu ra trong các tệp C được biên dịch bằng GCC?

.section init 

Có cách nào để làm điều tương tự trong các tập tin C. Tôi muốn mã cho một số tập tin để đi vào phần khác nhau vì vậy tôi có thể tải nó vào địa chỉ bộ nhớ khác nhau. Tôi biết tôi có thể tạo ra một kịch bản cho ld và xác định các phần có nhưng tôi không muốn làm điều đó. Có một số chuyển đổi trình biên dịch hoặc .section chỉ thị loại điều cho các tập tin C sẽ làm điều này?

+0

Tương tự như câu hỏi này: http://stackoverflow.com/questions/3516398/define-a-sections-in-c-code-gcc. –

Trả lời

14

Có:

__attribute__((section("section_name"))) 

Vì vậy, ví dụ:

void foo() __attribute__((section(".text_foo"))); 

.... 

void foo() {} 

Sẽ đặt foo trong .text_foo

Xem here để biết thêm thông tin.

+0

cảm ơn nhưng đó là cho một chức năng duy nhất. Tôi muốn một số điều đó sẽ giống nhau cho tập tin C hoàn thành – binW

+0

Mẹo: bạn có thể sử dụng một macro để làm cho nó ít xấu xí. – Artelius

+0

Macro là một lựa chọn tuyệt vời vì nó cũng giúp tính di động. –

Các vấn đề liên quan