作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前,我正在使用:
#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/
我有这个: const {ops} = getOplogStreamInterpreter(strm); ops.del.subscribe(v => { console.log('delete
我四处搜索,据我所知,POST 表单请求已被限制为 10MB (http://golang.org/src/net/http/request.go#L721)。 如果我要在我的 ServeHTTP 方
我是一名优秀的程序员,十分优秀!