cuốn sách gpt4 ai đã làm

c - một dòng câu lệnh #if

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 05:52:19 27 4
mua khóa gpt4 Nike

Tôi có một tệp cấu hình có nhiều định nghĩa để bao gồm các mô-đun trong quá trình biên dịch. Ngoài ra, điều này có nghĩa là tôi phải liên tục kiểm tra các định nghĩa trong mã của mình. Tôi cần 3 dòng cho mỗi lần kiểm tra, có thể thực hiện việc này trong một dòng không.

#if FUNC_ENABLED
function_Option_call();
#endif

Tôi đang tìm kiếm một cái gì đó tương tự.

GỌI (hàm_tùy chọn_call(),FUNC_ENABLED);

Có thể thực hiện việc này hay tôi phải sử dụng biểu thức 3 dòng. Tôi biết có thể xác định macro cho mỗi macro.

Bỏ qua lệnh gọi hàm nếu không được xác định

Nhưng liệu có thể tạo ra một macro phổ quát hay không.

câu trả lời hay nhất

#if FUNC_ENABLED
function_Option_call();
#endif

là cách viết kinh điển của các chuyển đổi trình biên dịch. Nó rõ ràng, dễ đọc và mọi lập trình viên đều hiểu nó làm gì.

Bây giờ mã này:

GỌI (hàm_tùy chọn_call(),FUNC_ENABLED);

là hoàn toàn bí ẩn. Không rõ nó dùng để làm gì và tại sao lại có macro... nó thậm chí trông không giống C. hợp lệ.

Vì vậy, hình thức đầu tiên vượt trội hơn nhiều so với hình thức sau, đó chỉ là một cách thực hành tồi tệ. Vì vậy, đừng cố gắng viết lại cái trước thành cái sau.


Nếu bạn lo lắng về việc lặp đi lặp lại cùng một dòng, vấn đề có vẻ là do các công tắc của trình biên dịch không ở đúng vị trí. Thay vào đó, hãy đặt nó vào một hàm. Hoặc nếu bạn không thể sửa đổi chức năng, hãy tạo một trình bao bọc.

Về câu lệnh c - one line #if, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/37319253/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress