读书人

变量赋值不起作用解决思路

发布时间: 2012-02-24 16:30:39 作者: rapoo

变量赋值不起作用
#include "GetCoordinates.h"
#include "kuangkaung.h"
#include <log.h>

extern far LOG_Obj trace;
#define HEIGHT 576
#define WIDTH 720
extern int nObject;
extern int nTarget[255];
extern unsigned short pRegionGrow[HEIGHT*WIDTH];
extern unsigned char m_SubStract[WIDTH*HEIGHT];
//int minx, miny, maxx, maxy;



void GetCoordinates()
{
int minx, miny, maxx, maxy;
int i,j,k;
int numMark;

for(k = 1; k < nObject; k++)
{
minx = 719;
maxx = 0;

miny = 575;
maxy = 0;

numMark = 0;

for(i = 0; i < HEIGHT; i++)
{

for(j = 0; j < WIDTH; j++)
{


int position = i*WIDTH +j;
//m_SubStract[position] = 0;
numMark = pRegionGrow[position];

if(numMark == nTarget[k])
{

//m_SubStract[position] = 155;

if(minx>j)
{
minx = j;
}

if(maxx < j)
{
maxx = j;
}

if(miny > i)
{
miny = i;
}

if(maxy < i)
{
maxy = i;
}

}

}
}

LOG_printf(&trace, "i = %d.\n", i);
LOG_printf(&trace, "j = %d.\n", j);
LOG_printf(&trace, "minx = %d.\n", minx);
LOG_printf(&trace, "maxx = %d.\n", maxx);
LOG_printf(&trace, "miny = %d.\n", miny);
LOG_printf(&trace, "maxy = %d.\n", maxy);
kuangkuang( minx, maxx, miny, maxy);
}
}

/////////////////////////////////////////////////////////
在if(minx > j)
{
minx = j;
} 中,minx > j为真,程序已执行到if内部,但j的值却未赋给minx,下面3个if也是同样的问题,编译环境为TI的ccs,请教以上问题究竟出在哪里呢?谢谢!!!


[解决办法]

C/C++ code
//给你排个版,别人看上去舒服点///这么看看不出来,自己单步调下,在if中输出minx看下,不行再改个变量赋值给minx看看能不能改变#include "GetCoordinates.h" #include "kuangkaung.h" #include  <log.h> extern far LOG_Obj trace; #define HEIGHT 576 #define WIDTH 720 extern int nObject; extern int nTarget[255]; extern unsigned short pRegionGrow[HEIGHT*WIDTH]; extern unsigned char m_SubStract[WIDTH*HEIGHT]; //int minx, miny, maxx, maxy; void GetCoordinates() {     int minx, miny, maxx, maxy;     int i,j,k;     int numMark;          for(k = 1; k  < nObject; k++)     {         minx = 719;         maxx = 0;                 miny = 575;         maxy = 0;                  numMark = 0;                 for(i = 0; i  < HEIGHT; i++)         {                         for(j = 0; j  < WIDTH; j++)             {                                 int position = i*WIDTH +j;                 //m_SubStract[position] = 0;                 numMark = pRegionGrow[position];                                 if(numMark == nTarget[k])                 {                                            //m_SubStract[position] = 155;                                         if(minx>j)                     {                         minx = j;                     }                                         if(maxx  < j)                     {                         maxx = j;                     }                                         if(miny > i)                     {                         miny = i;                     }                                         if(maxy  < i)                     {                         maxy = i;                     }                                     }                             }         }                 LOG_printf(&trace, "i = %d.\n", i);         LOG_printf(&trace, "j = %d.\n", j);         LOG_printf(&trace, "minx = %d.\n", minx);         LOG_printf(&trace, "maxx = %d.\n", maxx);         LOG_printf(&trace, "miny = %d.\n", miny);         LOG_printf(&trace, "maxy = %d.\n", maxy);         kuangkuang( minx, maxx, miny, maxy);     } } 


[解决办法]
在if里面加上break,跳出两个for循环,输出一下,你看看是否赋值成功了。
[解决办法]
赋值不成功的现象是啥?它总不会是初始值,如果真的有if满足条件

[解决办法]
这种问题最好单步调啦。细心点大哥
[解决办法]
扯淡,咋可能。RebuildAll吧
[解决办法]

C/C++ code
minx = 719;         maxx = 0;                 miny = 575;         maxy = 0;                  numMark = 0; 

读书人网 >C语言

热点推荐