变量赋值不起作用
#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,请教以上问题究竟出在哪里呢?谢谢!!!
[解决办法]
//给你排个版,别人看上去舒服点///这么看看不出来,自己单步调下,在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吧
[解决办法]
minx = 719; maxx = 0; miny = 575; maxy = 0; numMark = 0;