[英]How to pass string as argument to a C macro
我有一個字符串數組char version[][8] = {"new", "old", "latest", "oldest", "ancient"}
;
我有一個宏
#define FS(file, attr) \
filesys(file, file_ ##attr## _ops) \
如何將字符串數組version
的成員傳遞給FS宏?
你不能。 宏是編譯時間,編譯器將無法以所需方式拼接字符串。 相反,請嘗試使用strcat()
,只是不要忘記您需要跟蹤字符串數組的大小。
您不能在宏中使用任何C功能,因為預處理器對C和C語言一無所知。
請記住,這是編譯時令牌替換。
改用普通功能
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.