Hãy xem xét ví dụ sau:Làm thế nào để có được thành viên struct với một chuỗi sử dụng Macros C++
struct MyStruct {
int a;
int b;
};
tôi có thể sử dụng các macro để thiết lập một thành viên từ một thể hiện của các cấu trúc bằng cách làm này:
#define setVar(x,y) instance.x = y
sau đó trong bất kỳ chức năng nào tôi có thể nói:
setVar(a, 4)
Làm cách nào để gửi chuỗi dưới dạng macro? Điều đó cũng có thể?
setVar("a", 4)
CHỈNH SỬA: Có một loạt các cấu trúc được xác định trước với các thành viên thuộc loại gấp đôi. Tôi chỉ biết cấu trúc mà tôi đang sử dụng bởi một tệp cấu hình XML được truyền vào. Sau khi phân tích cú pháp, tôi có một chuỗi các chuỗi là danh sách tất cả các thành viên dữ liệu và các giá trị cần được thiết lập. Tôi cần sử dụng danh sách này để đặt giá trị cho từng thành viên trong cấu trúc.
Tại sao bạn sẽ muốn sử dụng các macro như thế này? – crashmstr
Bạn có muốn lập trình vào thời gian chạy xây dựng tên các trường không? Điều này là không thể. – liori
Không, có một loạt các cấu trúc được xác định trước mà tôi cần truy cập dữ liệu và tôi chỉ có thể truy cập nó bằng cách sử dụng tệp xml với danh sách các biến của nó. Có một cách khác để làm điều này? Ngoài ra, x sẽ luôn có kiểu double – ulu5