Giả sử bạn muốn tạo ra một danh sách phù hợp của định danh và chuỗiLàm một cái gì đó cả một định danh C và một chuỗi?
enum
{
NAME_ONE,
NAME_TWO,
NAME_THREE
};
myFunction(NAME_ONE, "NAME_ONE");
myFunction(NAME_TWO, "NAME_TWO");
myFunction(NAME_THREE, "NAME_THREE");
..without lặp lại chính mình, và không có/C++ macro tự động tạo mã, sử dụng C
đoán ban đầu:
Bạn có thể thêm một file #include chứa
myDefine(NAME_ONE)
myDefine(NAME_TWO)
myDefine(NAME_THREE)
Sau đó sử dụng nó hai lần như:
#define myDefine(a) a,
enum {
#include "definitions"
}
#undef myDefine
#define myDefine(a) myFunc(a, "a");
#include "definitions"
#undef myDefine
nhưng #define không cho phép bạn đặt thông số trong chuỗi?
Tuyệt vời để xem ai đó đang sử dụng tên macro cũng như vậy. Tôi thấy kỹ thuật này rất mạnh mẽ và hữu ích. Shameless plug: http://stackoverflow.com/questions/147267/easy-way-to-use-variables-of-enum-types-as-string-in-c#202511 – Suma