什么是你遇到过的最糟糕的现实世界的macros/预处理器的滥用?

什么是最糟糕的 现实世界的macros/预处理器滥用你曾经遇到(请不要做作的IOCCC答案*哈哈*)? 请添加一个简短的片段或故事,如果它真的很有趣。 目标是教一些东西,而不是总是告诉人们“不要使用macros”。 ps:我之前使用过macros,但是通常当我有一个“真正的”解决scheme(即使真正的解决scheme是内联的,所以它变得类似于一个macros)我最终摆脱它们。 奖金:给出一个例子,其中macros观确实比非macros观解决scheme更好。 相关问题: 什么时候C ++macros有益?

Java GUI框架。 该选什么? Swing,SWT,AWT,SwingX,JGoodies,JavaFX,Apache Pivot?

java中有相当多的GUI框架,但是被认为是今天的框架呢? 以下是我对不同框架的理解,如果我错了,请纠正我。 这是一个非常松散的问题,但我仍然认为它对任何想创build丰富的gui应用程序的人都有价值。 AWT 是摆动的基础,它performance良好,但缺乏先进的组件。 如果你打算创build丰富的应用程序,AWT可能不是要走的路。 但是对于不需要丰富的用户界面的较小的gui应用程序。 这可能是完美的,因为它是一个久经考验的框架。 摇摆 如前所述基于AWT。 在起步阶段,它被认为是缓慢和错误的,并导致IBM为Eclipse创buildSWT。 然而,Java 5(或6?)Swing成为构build新应用程序的首选框架。 Swing有很多丰富的组件,但在某些领域仍然缺乏。 一个例子是没有一个全function的TreeTable组件可以进行sorting和过滤/search。 SWT 由IBM为Eclipse创build,他们似乎认为Swing当时不适合Eclipse。 本身是相当低级的,它通过JNI使用平台的本地小部件。 这与Swing和AWT无关。 他们的API有点笨重,不直观。 他们有一些像TreeTable一样的高级组件。 (但我不认为他们支持sorting和过滤框)。 SWT使用一些本地绑定(通过JNI?),互联网上的咆哮是这个框架不应该在今天的项目中使用。 (为什么不?) SwingX 基于Swing,它的使命是创build丰富的组件。 还在开发中。 (虽然不是非常活跃)。有一组非常好的组件,例如TreeTable。 但据我所知,TreeTable不支持过滤和sorting。 但是它支持高亮显示。 请注意,SwingX是组件(AFAIU),是现有Swing组件的扩展或组合 JGoodies数据 一个我一无所知的框架…它的优点和缺点是什么? 其余的Jgoodies是什么? JGoodies OTOH是关于PLAF和布局。 JavaFX的 Java / Oracle的最新旗舰。 很有希望成为开发富桌面或Web应用程序的事实标准。 Apache枢轴 它使用Java2D呈现UI,从而最大限度地减lessSwing和AWT(IMO,膨胀)遗留的影响。 (@Augustus Thoo) 它的主要重点似乎是RIA(富互联网应用程序),但它似乎也可以应用于桌面应用程序。 作为个人评论,看起来很有趣! 我特别喜欢这是一个Apache项目。 https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html Qt Jambi 用c / c ++编写的java本地包装器。 […]

推荐的编程字体?

你使用什么字体进行编程,以及什么语言/ IDE? 我使用Consolas来处理所有的Visual Studio工作,还有其他build议吗?

find一个不在40亿给定的整数

这是一个面试问题: 给定一个有40亿个整数的input文件,提供一个algorithm来生成一个不包含在文件中的整数。 假设你有1 GB的内存。 如果你只有10 MB的内存,跟进你会做什么。 我的分析: 文件的大小是4×10 9 ×4字节= 16 GB。 我们可以做外部sorting,因此我们知道整数的范围。 我的问题是什么是检测sorting的大整数集中丢失的整数的最佳方法? 我的理解(阅读所有答案后): 假设我们正在谈论32位整数。 有2 ^ 32 = 4 * 10 9不同的整数。 情况1:我们有1 GB = 1 * 10 9 * 8位= 80亿位内存。 解决scheme:如果我们使用一位代表一个不同的整数,就足够了。 我们不需要sorting。 执行: int radix = 8; byte[] bitfield = new byte[0xffffffff/radix]; void F() throws FileNotFoundException{ Scanner in = new Scanner(new […]

ASP.NET的隐藏特性

这个问题的存在是因为它具有历史意义,但是这个网站对于这个网站来说不是一个很好的话题, 所以请不要把它当作你在这里可以提出类似问题的证据。 更多信息: https : //stackoverflow.com/faq 在边缘情况下,总有一些特征是有用的,但是正因为如此,大多数人都不了解它们。 我所要求的function通常不是教科书所教的。 你知道什么?

ActiveMQ或RabbitMQ或ZeroMQ或

我们有兴趣听听ActiveMQ vs RabbitMQ vs ZeroMQ的优缺点。 关于任何其他有趣的消息队列的信息也是受欢迎的。

打印1到1000没有循环或条件

任务 :从1到1000打印数字,不使用任何循环或条件语句。 不要只写printf()或cout语句1000次。 你将如何使用C或C ++?

Windowsbatch file的隐藏function

什么是Windowsbatch file的一些不太了解,但重要和有用的function? 指南: 每个答案一个function 同时提供该function和示例的简短说明 ,而不仅仅是文档链接 限制原生function的答案,即不需要额外的软件,如Windows资源工具包 说明:我们在这里指的是由cmd.exe处理的脚本,这是WinNT变体的默认值。 (另请参阅: Windowsbatch file:.bat和.cmd? )

C ++ 11引入了标准化的内存模型。 这是什么意思? 那么如何影响C ++编程呢?

C ++ 11引入了标准化的内存模型,但究竟是什么意思呢? 那么如何影响C ++编程呢? 香草萨特在这里说, 内存模型意味着C ++代码现在有一个标准化的库来调用,不pipe编译器是谁做的,在哪个平台上运行。 有一个标准的方法来控制不同的线程如何与处理器的内存交谈。 Sutter说:“当你谈论的是跨标准的不同核心进行拆分时,我们正在谈论内存模型。我们将会优化它,而不会破坏人们在代码中所做的下列假设。 那么,我可以记住这个在线类似的段落(因为我已经有自己的记忆模型,自诞生以来:P),甚至可以回答别人提出的问题,但说实话,我不完全明白这一点。 所以,我基本上想知道的是,C ++程序员甚至在之前就开发了multithreading应用程序,所以如果是POSIX线程,Windows线程或者C ++ 11线程,它又有什么关系呢? 有什么好处? 我想了解低级细节。 我也感觉到C ++ 11内存模型与C ++ 11multithreading支持有某种联系,因为我经常将这两者结合在一起。 如果是这样,究竟是如何? 他们为什么要相关? 因为我不知道multithreading的内部工作原理,以及一般的内存模型意味着什么,所以请帮助我理解这些概念。 🙂

在使用DIV指令之前为什么EDX应该为0?

我注意到当EDX包含一些像00401000这样的随机默认值,然后我使用这样的DIV指令: mov eax,10 mov ebx,5 div ebx 它会导致INTEGER溢出错误。 但是,如果我将edx设置为0,并执行相同的操作。 我相信使用div会导致商覆盖eax和其余覆盖edx 。 得到这个INTEGER OVERFLOW错误真的让我困惑。