Tôi đang cố gắng tìm ra cách viết một macro sẽ truyền cả hai biểu diễn dạng chuỗi của một tên biến cùng với biến đó vào một hàm.Làm thế nào để sử dụng đối số Macro dưới dạng chuỗi ký tự?
Ví dụ: được cung cấp chức năng sau.
void do_something(string name, int val)
{
cout << name << ": " << val << endl;
}
tôi muốn viết một macro để tôi có thể làm điều này:
int my_val = 5;
CALL_DO_SOMETHING(my_val);
Trong đó sẽ in ra: my_val: 5
tôi đã cố gắng làm như sau:
#define CALL_DO_SOMETHING(VAR) do_something("VAR", VAR);
Tuy nhiên, như bạn có thể đoán, VAR bên trong dấu ngoặc kép không được thay thế, nhưng chỉ được chuyển thành chuỗi chữ "VAR". Vì vậy, tôi muốn biết nếu có một cách để có đối số macro được biến thành một chuỗi chữ chính nó.
Bạn đang cố gắng để sử dụng cái này? – chris