是否可以像 Python 的 f-strings 一样在 C 中格式化字符串?

Ela*_*paz 0 c f-string

在 Python 中,可以使用 f-strings 方便地格式化字符串:

num = 12
print(f"num is {num}") # prints "num is 12"
Run Code Online (Sandbox Code Playgroud)

有可能在 C 中做这样的事情吗?或者类似的东西?目前,要将变量添加到输出中,我正在使用此方法:

int num = 12;
printf("num is %d", num);
Run Code Online (Sandbox Code Playgroud)

这是将变量添加到 C 中的打印语句的唯一方法吗?

Kam*_*Cuk 6

{num}")
Run Code Online (Sandbox Code Playgroud)

有可能在 C 中做这样的事情吗?

不,这是不可能的。C语言是一种没有反射的编程语言。不可能通过存储在 C 中的字符串中的名称找到变量。

另一方面,Python 是一种解释性语言,它背后有一个完整的解释器实现,它跟踪所有变量名和值,并允许在解释性语言本身内查询它。因此,在使用字符串的 python 中,"num"您可以找到具有该名称的变量并查询其值。

附注。它可能与许多宏和C11_Generic功能省去由指定%d printf格式说明,更获得C到C ++ - ISHstd::cout <<函数重载-对于这一点,你可能想要探索我尝试它与YIO库。但是,为此,建议只使用 C++ 或 Rust 或其他功能更全的编程语言。