0

所以我的程序必须接受读取字符网格的 txt 文件。每个字符代表一个特定的命令。句点(句号)表示继续执行最后一个命令。

但是当我编译我的代码时gcc -Wall -pedantic thebox.c -o thebox,我收到了这个警告:

建议使用括号括起来作为真值

这是警告所指功能的第一部分。警告说第 78 行,即该if(command = ('.')行 -

int* getCommand(int next[2],char** gridArray)
{
        /* a function to return the command on the next position */
        int nextX = next[0];
        int nextY = next[1];
        char newCommand;
        char command = gridArray[nextX][nextY];
        if(command = ('.')) {
                newCommand = '1';
                gridArray[nextX][nextY] = newCommand;
        }

如何解决此警告?

4

3 回答 3

9

您检查与 的相等性==

您可以用来帮助避免将来出现类似问题的一种技术是改变您的比较:

        if('.' == command) {

如果你忘记了 extra =,编译器会抱怨。这种技术并不总是适用(例如当您比较两个变量时),但它经常适用,值得付出努力。

于 2013-08-14T01:50:28.770 回答
5

要检查你使用==not的平等=,改变它,你应该一切准备就绪。

于 2013-08-14T01:35:52.300 回答
4

您的语法是正确的,但语义存在问题。每个人都忽略了这一点。我已经做过很多次了。 if(command == '.')

于 2013-08-14T01:44:10.880 回答