gpt4 book ai didi

c - 对等于和运算符使用宏

转载 作者:行者123 更新时间:2023-12-02 22:17:25 27 4
gpt4 key购买 nike

最近在C语言上刷新了自己。从一些博客中,我读到诸如“==”和“&&”之类的运算符导致程序员分别使用“=”和“&”时容易出错,而程序员花了很多时间来查找和解决问题.

我认为为“==”和“&&”定义宏可以解决问题。

#define EQ ==
#define AND &&

int main(void)
{
int a = 1 , b = 2 ;

if(a EQ 1 AND b EQ 2 ){
// some statements
}

}

它会影响可读性吗?还有其他解决方案可以解决这个问题吗?

最佳答案

就我个人而言,我不喜欢触及该语言的最基本语法,例如创建宏来替换 C 关键字或运算符。

在这种情况下它非常简单,并且可能不会改变可读性,但是其他程序员(如果您不是唯一维护代码的人)看到这些宏可能会被诱惑为他们think 模棱两可或容易出错。

所以我不会在 C 的关键字/运算符级别支持宏。
但是您可以使用一些编译器选项来显示何时存在歧义,例如

  gcc -Wall prog.c -o prog

Wall 启用所有警告(您可以使用 gcc 优化警告)。这取决于您使用的编译器。

例如

  int a=1,b=2;
if (a = b) { ... }

将 gcc 作为带有 -Wall 选项的编译器发出警告。

关于c - 对等于和运算符使用宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14230019/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com