我在几个小时内调试了一个代码,最后发现它使用!=
运算符,而我的代码扫描代码将其读作=
。多年前我总是在 Pascal 中使用<>
运算符。现在我必须在 C 中编写和调试,以使社区可以重用代码。所以我尝试在以下命令中将<>
定义为!=
:
#define <> !=
#define "<>" "!="
但它没有用。我试图在网上搜索,但只有我找到了关于C ++或C#的结果,但我需要 C 。
是否有可能使用<>
作为不等运算符编写可重用的 C 代码? (我假设其他normal
个用户可以自动将<>
替换为!=
,但代码应该在其他系统上进行编译而无需修改,即使用<>
)。
我使用Linux( gcc )。
答案 0 :(得分:3)
C没有运算符重载。期。如果您需要该功能,请使用其他编程语言。
答案 1 :(得分:1)
您不能在c。
中重载运算符答案 2 :(得分:1)
如前所述,C中没有运算符重载(仅在C ++中引入)
但是,您仍然可以选择在编译过程中自动生成<>
替换为!=
的文件。
答案 3 :(得分:1)
运算符字符不能用于任何对象的名称,即预处理器宏(在您的情况下),变量名称,函数名称...
所以基本上,你不能做这样的事情。你可以看到我的评论,看看为什么这是一个坏主意。
答案 4 :(得分:0)
如果您构建程序,并且c代码中包含以下行之一
#define <> !=
#define "<>" "!="
然后你会得到一个编译错误:
error: macro names must be identifiers
这意味着宏的名称应以字母开头,即使在宏名称中使用某些特殊字符也存在限制。
可能是您可以为您的宏使用其他名称,如:
#define NEQ !=
这是允许的