我定义了一个常量:
#define MAX_STR_LEN 100
我正在尝试这样做:
scanf("%" MAX_STR_LEN "s", p_buf);
但这当然行不通。
可以使用什么预处理器技巧将 MAX_STR_LEN 数字转换为字符串,以便我可以在上面的 scanf 调用中使用它?基本上:
scanf("%" XYZ(MAX_STR_LEN) "s", p_buf);
XYZ() 应该是什么?
注意:我当然可以直接执行“%100s”,但这违背了目的。我也可以做#define MAX_STR_LEN_STR "100",但我希望有一个更优雅的解决方案。