動的関数のために、関数とマクロを動的に定義する必要があります。後続のコードは正常に動作しますが、最初のマクロの中にマクロを追加しようとすると失敗します。 が必要な行動マクロの動的定義
#define INIT_PATH_FUNCTION(UCI_PATH, DPATH) \
struct ctx *ctx_##_PATH; \
int print##_PATH(char *package) \
{\
print("package %s \n", package); \
return 0; \
}\
#define foreach_file_##PATH(path) \
for (section = print##_PATH(path); \
section != NULL; \
section = print##_PATH(path))\
#define PRINT(UCI_PATH, path) print##_PATH(path)
INIT_PATH_FUNCTION(test, "/etc/")
INIT_PATH_FUNCTION(test2, "/root/")
「ダイナミック」と「マクロ」はうまくいっていません。前処理は、ループが実行される前に実行されています。それとも、コンパイルされている。 –