小编jfm*_*fm3的帖子

为什么在宏中使用明显无意义的do-while和if-else语句?

在许多C/C++宏中,我看到宏的代码包含在看似无意义的do while循环中.这是一些例子.

#define FOO(X) do { f(X); g(X); } while (0)
#define FOO(X) if (1) { f(X); g(X); } else
Run Code Online (Sandbox Code Playgroud)

我看不出它do while在做什么.为什么不在没有它的情况下写这个?

#define FOO(X) f(X); g(X)
Run Code Online (Sandbox Code Playgroud)

c c++ c++-faq c-preprocessor

758
推荐指数
8
解决办法
9万
查看次数

如何控制Emacs如何制作备份文件?

Emacs将备份文件放在foo~任何地方,我不想记得删除它们.此外,如果我在文件系统中的其他位置编辑一个具有硬链接的文件,那么当我完成编辑时,硬链接指向备份,这令人困惑和糟糕.我怎样才能消除这些备份文件,或者将它们放在同一目录以外的某个地方?

emacs

313
推荐指数
5
解决办法
10万
查看次数

80
推荐指数
7
解决办法
3万
查看次数

使用Perforce而不是Subversion有什么好处?

我的团队已经使用SVN几年了.我们现在可以选择切换到Perforce.

进行这样的转换有什么好处(和陷阱)?

svn perforce

65
推荐指数
5
解决办法
4万
查看次数

你如何使用'target remote'在gdb中重新开始运行程序?

当您在同一台计算机上的可执行文件上执行常规gdb会话时,您可以提供运行命令,它将再次启动该程序.

当您在嵌入式系统上运行gdb时,与命令target localhost:3210'一样,如何在不退出并重新启动gdb会话的情况下重新启动程序?

embedded debugging gdb

29
推荐指数
3
解决办法
4万
查看次数

如何让Emacs在没有那么夸张的情况下开始?

每次启动Emacs时,我都会看到一个帮助文本页面和一堆消息,建议我尝试使用本教程.我如何阻止这种情况发生?

emacs

23
推荐指数
2
解决办法
6303
查看次数

编辑文本缓冲区

好的,这是一个有点厚颜无耻的问题.我想构建一个简单的文本编辑器(使用我自己的文本模式屏幕处​​理).我只想要一个可用于表示文本缓冲区的数据结构的好例子,以及一些简单的char/text插入/删除示例.我自己可以处理所有其余代码(文件i/o,控制台i/o等).一个很好的简单编辑器源的链接将很棒(C或C++).

c c++ open-source editor

16
推荐指数
5
解决办法
6404
查看次数

如何阻止Emacs自动编辑我的启动文件?

.emacs每当我使用自定义工具时,或者当我键入默认禁用的命令时,Emacs都会编辑我的文件.任何自动编辑我的配置都会让我感到紧张.如何阻止Emacs编辑我的内容.emacs.文件?

emacs

6
推荐指数
1
解决办法
233
查看次数