struct S {int a,b;} x;extern struct S £(); /* structure-returning func dịch - struct S {int a,b;} x;extern struct S £(); /* structure-returning func Việt làm thế nào để nói

struct S {int a,b;} x;extern struct

struct S {int a,b;} x;
extern struct S £(); /* structure-returning function */ int i;
x = f(); /* OK */
i - f ().a; /* OK */
fO.a ■ i; /* Invalid; f() is not an lvalue */
(The last assignment, even if valid, would be nonsensical. The function f would return a copy
of some structure, which would then have one of its components modified—just before the entire copy was discarded at the end of thé statement.)
(Some non-Standard C implementations do not allow functions to return structures at all. Of those that allow it, a few do. not allow a function call to have a selection operator applied to it; they would consider £ ( ) . a to be an error.)
If the expression before the period has type qualifiers, or if the member does, then the result has the union of both sets of qualifiers.
Example
The following assignment is invalid because X. a has type const int, the const having been inherited from x:
const struct {int a,b;} x; x.a = 5; /* Invalid */
An indirect component selection expression consists of a postfix expression, the op-erator - >, and a name. The value of the postfix expression must be a pointer to a structure or union type, and the name must be the name of a component of that structure or union type. The result is the named member of the union or structure and is an lvalue; it is modi¬fiable unless the member is an array. The expression e->name is by definition precisely equivalent to the expression {*
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
struct S {int a, b;} x;extern struct S £ (); / * trở về cấu trúc chức năng * / int tôi;x = f(); / * Hiểu * /i - f () một; / * Hiểu * /fO.a ■ tôi; / * Không hợp lệ; f() không phải là một lvalue * /(Nhiệm vụ cuối cùng, thậm chí nếu hợp lệ, sẽ là vô nghĩa. Hàm số f sẽ trở lại một bản saomột số cấu trúc, mà sau đó sẽ có một trong các thành phần lần — ngay trước khi các bản sao toàn bộ bị loại bỏ vào giữa tuyên bố thé.)(Một số hiện thực C không chuẩn cho phép các chức năng để trở về cấu trúc ở tất cả. Những người đó cho phép nó, một vài làm. không cho phép một chức năng gọi để có một nhà điều hành lựa chọn áp dụng cho nó; họ sẽ xem xét £ (). một phải lỗi.)Nếu biểu thức trước khi giai đoạn này có loại vòng loại, hoặc nếu các thành viên không, sau đó kết quả có liên minh của cả hai bộ của vòng loại.Ví dụViệc chuyển nhượng sau là không hợp lệ vì X. một có loại const int, XD có được thừa hưởng từ x:const struct {int a, b;} x; x.a = 5; / * Không hợp lệ * /Một biểu thức lựa chọn thành phần gián tiếp bao gồm một biểu thức postfix, op-erator - >, và một tên. Giá trị của biểu thức postfix phải là một con trỏ chỉ tới một cơ cấu hoặc loại liên minh, và tên phải là tên của một thành phần của các cấu trúc hay liên minh loại. Kết quả là các thành viên được đặt tên của liên minh hoặc cấu trúc và là một lvalue; nó là modi¬fiable trừ khi các thành viên là một mảng. Biểu hiện e -> tên là theo định nghĩa chính xác tương đương với biểu thức {*Ví dụTrong đoạn mã sau đây, cả hai thành phần của cấu trúc điểm được thiết lập để 0.0 một cách chỗ đường vòng để chứng minh tương đương này:Struct {phao x, y;} Điểm, * Point_Ptr;Point.X ¿0.0;. / * Bộ x để 0.0 * /PointPtr = ¡¿Point;Poiht_Ptr -> y B 0.0; / * Bộ y để 0.0 * /Nếu biểu thức trước khi-> có loại vòng loại, hoặc nếu các thành viên không, sau đó kết quả có liên minh của cả hai bộ của vòng loại.Một số hiện thực C cho phép con trỏ null được sử dụng trên bên trái của các nhà điều hành lựa chọn gián tiếp. Áp dụng các nhà điều hành địa chỉ & kết quả và đúc mà kết quả đểmột kiểu số nguyên sản lượng đối tượng dời hình của một thành phần trong cơ cấu. Điều này không rõ ràng cho phép hoặc bị cấm bởi các tiêu chuẩn, nhưng nó thường hoạt động.Ví dụ«xác định OFFSET(type,field) được viết bởi admin((size_t) & ((type *) 0) -> field)
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
struct S {int a, b;} x;
struct extern S £ (); / * Cấu trúc trở lại chức năng * / int i;
x = f (); / * OK * /
i - f () .a; / * OK * /
fO.a ■ i; / * Không hợp lệ; f () không phải là một giá trị trái * /
(Việc chuyển nhượng cuối cùng, thậm chí nếu hợp lệ, sẽ là vô nghĩa. Hàm f sẽ trả về một bản sao
của một số cấu trúc, sau đó sẽ có một trong các thành phần của nó được sửa đổi, ngay trước khi toàn bộ bản sao đã được bỏ đi . ở cuối thé tuyên bố)
(Một số triển khai phi tiêu chuẩn C không cho phép các chức năng để trả lại các cấu trúc ở tất cả Trong số những người đó cho phép nó, một số ít không cho phép một cuộc gọi chức năng để có một hành lựa chọn áp dụng cho nó;.. họ sẽ xem xét bảng (). một để có một lỗi.)
Nếu biểu trước khoảng thời gian đã gõ vòng loại, hoặc nếu các thành viên không có gì, sau đó kết quả có sự kết hợp của cả hai tập của vòng loại.
Ví dụ
Việc chuyển nhượng sau đây là không hợp lệ vì X. một có kiểu int const, const đã được thừa hưởng từ x:
const struct {int a, b;} x; xa = 5; / * * Không hợp lệ /
Một biểu thức lựa chọn thành phần gián tiếp bao gồm một biểu thức postfix, các op-erator ->, và một tên. Các giá trị của biểu thức postfix phải là một con trỏ đến một cấu trúc hoặc công đoàn kiểu, và tên của nó phải là tên của một thành phần của cấu trúc hoặc công đoàn loại. Kết quả là các thành viên mang tên của công đoàn hoặc cấu trúc và là một giá trị trái; nó là modi¬fiable trừ các thành viên là một mảng. Biểu thức điện tử> tên là theo định nghĩa chính xác tương đương với biểu thức {* Ví dụ
Trong đoạn mã sau, cả hai thành phần của cấu trúc Point được thiết lập để 0.0 trong một thời trang đường vòng để chứng minh tính tương đương này:
Struct {float x, y; } Point, * Point_Ptr;
Point.X ¿0.0 ;. / * Sets x 0.0 * /
PointPtr = ¡¿Point;
Poiht_Ptr-> y B 0.0; / * Bộ y đến 0.0 * /
Nếu biểu trước -.> đã gõ vòng loại, hoặc nếu các thành viên không có gì, sau đó kết quả có sự kết hợp của cả hai tập của vòng loại
Một số triển khai C cho phép con trỏ null được sử dụng trên trái của người điều khiển lựa chọn gián tiếp. Áp dụng các toán tử địa chỉ & với kết quả và đúc mà dẫn đến
một kiểu số nguyên sản lượng các bù đắp bằng byte của một thành phần trong cấu trúc. Điều này là không được phép một cách rõ ràng hoặc bị cấm bởi các tiêu chuẩn, nhưng nó thường làm việc.
Ví dụ
«định nghĩa các OFFSET (loại, lĩnh vực)
((size_t) & ((loại *) 0) -> trường)
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2024 I Love Translation. All reserved.

E-mail: