首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-02-24 
变量赋值不起作用#include GetCoordinates.h#include kuangkaung.h#include log.hextern far LOG_Ob

变量赋值不起作用
#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; 

热点排行