2013-03-06 39 views
5

Trong mã C, tôi đã xem qua bit này_ ("văn bản"), nghĩa là dấu ngoặc đơn gạch dưới, làm gì?

_("test") 

Nó làm gì? (Tôi đã cố tự tìm kiếm, nhưng như bạn có thể tưởng tượng, các công cụ tìm kiếm không hỗ trợ tìm kiếm ...)

+3

Đó là trình bao bọc chuỗi. Nhìn vào đây: http://stackoverflow.com/questions/3336056/underscore-function – marsze

+0

bạn không thể chia sẻ đoạn mã? –

+0

Nếu bạn chạy 'grep _ \ (* [ch]', bạn sẽ thấy rằng nó là macro giống '#define _ (String) gettext (Chuỗi)' –

Trả lời

7

Gọi hàm _. Ví dụ:

#include <stdio.h> 

void _(int a) { 
    printf("%d",a); 
} 
int main(void) { 
     _(3); 
     return 0; 
} 

_ là một chức năng hiện có trong gettext library và được sử dụng để quốc tế. Như đã nói trong this answerThis function basically replaces the given string on runtime with a translation in the system's language, if available (i.e. if they shipped a .mo file for this language with the program).

+0

@IvayloStrandjev Đó là một phần của gettext, nó không phải là một trình biên dịch được xây dựng trong tất cả các – unwind

+0

@unwind cảm ơn bạn đó là lỗi của tôi –

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