C warning:statement with no effect [-Wunused-va...

之前做毕设的时候(4、5月份的时候了)初步了解了SLEPc库的使用,准备把一个示例改写为从一个文本文件中获取矩阵的各个元素,然后求特征值。也就是,在文本文件中"所见即所得"的存放一个方阵,用SLEPc求该矩阵的特征值。例如用my.mat存放一个矩阵,内容如下: 

zsh >> cat my.mat 
1 0 0
0 2 0
0 0 3
SLEPc的MatSetValues函数需要一行行的去赋值。我先写了一个简单的测试函数,用来读取每个元素并输出:
void showMatOfFile(char *filename)
{
    int size=getMatSiseOfFile(filename);  //矩阵是size*size大小
    int i=0,j=0,num,value[3];
    FILE *fp=fopen(filename,"r");
    printf("hi\n");
    for(i;i++;i<size)
    {
        for(j;j++;j<size)
        {
            if(fscanf(fp,"%d",&num))
            {
                printf("%d\n",num);
                value[j]=num;
            }
        }
        printf("%d %d %d\n",value[0],value[1],value[2]);
    }
}

编译时候出现一个警告: : warning: statement with no effect [-Wunused-value],本来觉得既然不是error何必去追求完美,没想到运行结果让自己摸不着东西。仔细看了一下,发现自己犯了个很傻逼X的错误——把`for(i;i<size;i++)`和`for(j;j<size;j++)`写成了`for(i;i++;i<size)`和`for(j;j++;j<size)`。更傻X的是自己把这段改写到目标源代码时候由犯了这个错误,还为这个错误再次花了半个多小时。。。


写于2013-4-18。

你可能感兴趣的:(C warning:statement with no effect [-Wunused-va...)