Giả sử tôi muốn bỏ chuỗi đối số macro sẽ biến đổi "text"
thành text
.Có cách nào để xóa trích dẫn trong macro C không?
#define UN_STRINGIFY(x) /* some macro magic here */
Bây giờ gọi macro này sẽ loại bỏ ""
từ đối số của nó
UN_STRINGIFY("text") // results in ----> text
Đây sẽ là đối diện của stringification vĩ mô:
#define STRINGIFY(x) #x
Đây có phải là có thể, hoặc tôi đang chơi với vĩ mô tà ác?
Điều bạn muốn làm, nếu có thể? – iammilind
Điều đó là không thể được; vì tò mò, mục đích sử dụng là gì? – dasblinkenlight
Vâng, thông thường tôi sẽ chỉ sử dụng stringify, nhưng tôi đang tái cấu trúc một số macro và không thực sự muốn thay đổi mẫu gọi. '#define THIS_MACRO (sringParam) const char * var = stringParam;' sẽ thay đổi thành '#define THIS_MACRO (stringParam) const char * un ## stringParam = stringParam;'. – syvex