1809得票5回答
在C语言中,':-!!'是什么意思?

我在/usr/include/linux/kernel.h中遇到了这段奇怪的宏代码: /* Force a compilation error if condition is true, but also produce a result (of value 0 and type si...

357得票15回答
Lisp宏有何特别之处?

阅读Paul Graham的文章关于编程语言,你会认为Lisp宏是唯一正确的选择。作为忙碌的开发者,在其他平台上工作,我没有使用Lisp宏的特权。作为一个想要理解这种功能强大之处的人,请解释一下是什么让这个特性如此强大。 请还将其与Python、Java、C#或C开发领域中的某些东西联系起来...

306得票6回答
奇怪的TRUE和FALSE宏定义

我在一本编程书中看到了以下宏定义。#define TRUE '/'/'/' #define FALSE '-'-'-' 那里没有解释。 请向我解释这些如何作为TRUE和FALSE工作。

299得票2回答
如何在使用#ifdef时添加OR条件?

抱歉我提出一个非常基础的问题。我想在 #ifdef 指令中设置 OR 条件。如何实现? 我已经尝试过:#ifdef LINUX | ANDROID ... .. #endif 没起作用?什么是正确的方式?

246得票10回答
参数个数重载宏

我有两个宏 FOO2 和 FOO3:#define FOO2(x,y) ... #define FOO3(x,y,z) ... 我想定义一个名为FOO的新宏,如下所示:#define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) 但是这不起...

228得票1回答
C多行宏:do/while(0)与作用域块

我看过一些多行的 C 宏,它们被包裹在 do/while(0) 循环中,例如: #define FOO \ do { \ 这里做一些事情 \ 再做一些事情 \ } while (0) 相较于使用基本块: #define FOO \ { \ 这里做一些事...

217得票31回答
__FILE__宏显示完整路径

标准预定义宏__FILE__在C语言中显示文件的完整路径。有没有办法缩短路径并只获取文件名?我的意思是,不要显示完整路径,只显示文件名。 /full/path/to/file.c 我明白了。 to/file.c 或者 file.c

208得票6回答
保存vim宏

有人知道如何正确保存/重复使用在vim编辑器中录制的宏吗?

205得票10回答
我可以在Visual Studio 2012/2013/2015/2017/2019中录制/播放宏吗?

显然,宏已经从Visual Studio 2012中删除。 是否有插件/扩展/工具可以让我录制和播放键盘宏(类似于Visual Studio 2010中的录制/播放临时宏)? 例如,当将代码从一种语言转换为另一种语言或快速从文本列表生成属性时,我通常...

196得票14回答
如何在编译时显示 #define 的值?

我正在尝试确定我的代码所使用的 Boost 版本。我想要这样做: #error BOOST_VERSION 但是预处理器不会展开 BOOST_VERSION。 我知道我可以在程序运行时打印它,我也知道我可以查看预处理器的输出来找到答案。我觉得在编译期间有一种方法可以做到这一点可能很有用。