簡體   English   中英

C元宏模式匹配

[英]C meta macro pattern matching

我有一些宏KEY_* 我想將它們全部定義為外部變量,但數字和名稱可能會有所不同。

file1.h:

#define KEY_FOO 200
...
#define KEY_ASDFG 423

預處理程序后的file2.c:

#include <file1.h>
// Something like this should be generated by macros or so, but should not hardcode the names (except KEY_)
extern int key_foo; int key_foo = 200;
...
extern int key_asdfg; int key_asdfg = 423;

我可以(以及如何)制作一個像這樣工作並且不需要用FOO / ASDFG調用的meta宏嗎?

您不能僅使用C預處理器來執行此操作。

至少,這將需要將KEY_FOO令牌分解為它們的組成字符,並且沒有預處理器工具可以這樣做。

使用sed或perl應該很容易,否則您甚至可以編寫C程序來執行此轉換,但是您不能在預處理器中執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM