【发布时间】:2012-09-10 18:57:57
【问题描述】:
我只是对 strcmp、stricmp、比较等有某种基本的感知问题。我知道他们做什么,我知道他们为什么这样做,但是当我检查相等性时,我只是自然地写“if (strcmp( ) )..." 这对我来说是逆向逻辑,我只是没有想到(直到后来我的代码块不起作用)写“if (0==strcmp())...”。我一直这样做,它减慢了我的发展。有没有人可以在这方面扭转我的想法?
就像我需要将函数命名为“strdoesntcmp”...(是的,我知道它不能用于小于或大于这种方式...)。当然我可以使用 #define 或 inline 来做这样的事情,但那是一个 hack……如果这有意义的话,我只想扭转我对它的自然想法……
【问题讨论】:
-
所以您希望有人侵入您的思维并改变您的思维方式?嘭!
-
哈哈,我正要发帖哈哈哈
-
不要写
(0 == whatever)。这是不直观的;反过来写,也许你会记得更清楚。 (“如果差为零”)。 -
好吧,你已经把它标记为 C++,所以我会说使用 C++ 字符串工具......但说真的,选择一种语言。它们不一样。
-
@mark 但您通常会将
==运算符与 std::string 一起使用