Код
const char* PARSER_ParseBlock(const char* text, char* buf, uint32_t buf_size, uint32_t *text_type, char* block_start_addr)
{
char type = 0;
char* b = buf;
uint32_t s = buf_size;
const char* p = text;
for(;*p != 0; p++)
{
if(p[0] == 'S' && p[1] == 'O' && (p[2] == 'I' || p[2] == 'A')) // check start of block SOI-start of instraction, SOA-start of action
{
if (type != 0) // start of next block without end of previous, start over
{
b = buf;
s = buf_size;
}
block_start_addr = (char*)&p[0];
type = p[2];
*text_type = type;
p += 2;
}
else if(type)
{
// write in a buffer
if (p[0] == 'E' && p[1] == 'O' && (p[2] == 'I' || p[2] == 'A')) // check end of block
{
if(type != p[2]) //end of block not this type
{
b = buf;
s = buf_size;
type = 0;
}
else
{
*b = 0;
return p + 3;
}
}
else if(s > 1)
{
// there is a place in buffer
*b = *p;
s--;
b++;
}
else
{
*buf = 0;
}
}
}
*b = 0;
return NULL;
}
{
char type = 0;
char* b = buf;
uint32_t s = buf_size;
const char* p = text;
for(;*p != 0; p++)
{
if(p[0] == 'S' && p[1] == 'O' && (p[2] == 'I' || p[2] == 'A')) // check start of block SOI-start of instraction, SOA-start of action
{
if (type != 0) // start of next block without end of previous, start over
{
b = buf;
s = buf_size;
}
block_start_addr = (char*)&p[0];
type = p[2];
*text_type = type;
p += 2;
}
else if(type)
{
// write in a buffer
if (p[0] == 'E' && p[1] == 'O' && (p[2] == 'I' || p[2] == 'A')) // check end of block
{
if(type != p[2]) //end of block not this type
{
b = buf;
s = buf_size;
type = 0;
}
else
{
*b = 0;
return p + 3;
}
}
else if(s > 1)
{
// there is a place in buffer
*b = *p;
s--;
b++;
}
else
{
*buf = 0;
}
}
}
*b = 0;
return NULL;
}
При компиляции получаю Warning[Pe550]: parameter "block_start_addr" was set but never used
Что то не могу понять где подвох.