gpt4 book ai didi

c - 使用 #define(添加结束大括号)进一步缩短 printf,或缩短 #define C

转载 作者:行者123 更新时间:2023-11-30 20:07:16 26 4
gpt4 key购买 nike

目前,我正在使用:

#define p printf(

为了减少我在整个程序中 printf 中使用的字符数量,例如,而不是:

printf("Hello, World.");

我能做到:

p"Hello, World.");

我的问题是,是否可以进一步缩短这个长度?例如,将结束大括号添加到定义中?类似于(伪代码):

#define p printf()

或者类似的?或者甚至是更短的 #define 方法?

编辑:在我被否决之前我最好先澄清一下。这样做的目的不是为了保存击键,因为我很懒,或者因为我想让它不可读。我已经编写了有问题的程序(它具有很强的可读性,希望不会让我陷入程序员的 hell ),我很好奇我能得到的字符数有多低。这个问题将有助于这样做。

最佳答案

您可以使用带有可变参数的宏:

#define p(...) printf(__VA_ARGS__)

尽管诸如 p 这样的名称不是一个好主意,但此语法可以很好地与条件日志记录一起使用。例如:

#ifndef NDEBUG
# define log(...) fprintf(stderr, __VA_ARGS__)
#else
# define log(...) ((void)0)
#endif
<小时/>

有时,您可能想使用格式说明符执行特定操作。为此,您可以利用 gcc 扩展(以及可能的其他编译器),例如:

#define log(fmt, ...) fprintf(stderr, "Log: "fmt"\n", ##__VA_ARGS__)

请注意,##__VA_ARGS__ 不是标准的。请参阅this answer还有。

关于c - 使用 #define(添加结束大括号)进一步缩短 printf,或缩短 #define C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15036803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com