2008-08-22 38 views
5

Tôi đang học mục tiêu-C và Cocoa. Trong hướng dẫn của Apple, tôi đang làm việc thông qua một lưu ý phụ có nội dung:'Macro được xác định bằng không' là gì?

IBOutlet là một macro được xác định bằng không, mà bộ tiền xử lý C loại bỏ lúc biên dịch.

Tôi tò mò - macro được xác định bằng không là gì?

Trả lời

8
#define IBOutlet 

Bất cứ khi nào IBOutlet được sử dụng trong văn bản chương trình, nó sẽ được thay thế bằng không có gì cả.

8

FYI, trong trường hợp cụ thể này, lý do IBOutlet thậm chí còn tồn tại chỉ đơn giản để Trình xây dựng giao diện có thể phân tích cú pháp tệp nguồn và thu thập các bit của sự hiểu biết từ nó. Đó là một đầu mối (tốt, mạnh hơn một chút so với đầu mối) mà biến trước bởi IBOutlet sẽ hiển thị dưới dạng một Cửa hàng trong Trình tạo giao diện khi thiết kế giao diện người dùng của bạn.

7

Macro không được xác định là macro sẽ được thay thế bởi bộ phận tiền xử lý (sẽ không bị xóa). Đó là vai trò là để đưa ra một gợi ý về một cái gì đó trong mã, chẳng hạn như:

 
#define IN 
#define OUT 
#define INOUT 

int myFunction(IN char *name, INOUT char *address, OUT char *phone); 

khai này cho thấy rằng name là một biến đầu vào của hàm, address là cả đầu vào và đầu ra, phone là một biến đầu ra.

+1

Điều đó thực sự dễ thương. Nhắc tôi về Ada (hiển nhiên). Tôi muốn thêm tiền tố vào tên thông số bằng hoặc tắt. Nhưng cùng một hiệu ứng. – schwa

+0

Tương tự, ngoại trừ việc thiếu ô nhiễm không gian tên với các macro điên. ;) – Kos

0

Ngoài ra - nếu bạn không chắc chắn về cách xác định mọi thứ - hãy bấm đúp vào nó và Xcode sẽ mở định nghĩa trong tệp nguồn gốc.

0

Oh và trong khi tôi đang ở đó. Tùy chọn nhấp đúp sẽ (cố gắng) mở tài liệu cho biểu tượng nhấp đúp.

+3

Tại sao bạn không hợp nhất hai câu trả lời và xóa một câu trả lời? – Amarghosh

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