//Function to store select_field
void store_field(int num_fields, unsigned long *lengths,
MYSQL_ROW row, char elect_type[10][100])
{
//Storing select_field below
int i,j,k,g;
for( i=1;i < num_fields;i=i+10)
{
// i+10 so that loop is executed one time only,
// i=1 bcoz 2nd entry is select_type
for (j=0;j<lengths[i];j++)
{
if (row[i] != NULL)
{
select_type[k][j] = *row[i];
row[i]++;
}
if (row[i] == NULL)
{
select_type[k][j]= '\0';
printf ( "NULL\n");
break; // row[i] is null for fields containing NULL
}
}
for (j;j<100;j++)
{
select_type[k][j]='\0';
}
// setting every other empty field in current row
// of select_type to NULL
}
k++;
}
g = k; //HERE I AM GETTING THE ERROR
for (k;k<10;k++){for(j=0;j<100;j++)
{
select_type[k][j]='\0';
}
}
我已经在函数中声明了k
,但我收到了错误。
答案 0 :(得分:5)
如果你得到“不在函数中”,那意味着被标记的代码是,等待它,而不是函数。
可能是一个不匹配的右括号(}
)导致你的功能在你认为它之前结束。
我放弃了重新格式化代码以找到问题。
答案 1 :(得分:4)
你有一个额外的结束括号。这条线
} g=k; **//HERE I AM GETTING THE ERROR**
关闭该功能。
我冒昧地格式化代码缩进。如果你保持良好的缩进,应该清楚}
不合适:
#include <stdio.h>
#include <ctype.h> // For tolower() function //
//Function to store select_field
void store_field(int num_fields,unsigned long *lengths,MYSQL_ROW row,char select_type[10][100]){
//Storing select_field below
int i,j,k,g;
for( i=1;i < num_fields;i=i+10){ // i+10 so that loop is executed one time only , i=1 bcoz 2nd entry is select_type
for (j=0;j<lengths[i];j++){
if (row[i] != NULL){ select_type[k][j] = *row[i];
row[i]++;
}
if (row[i] == NULL) { select_type[k][j]= '\0'; printf ( "NULL\n");break; // row[i] is null for fields containing NULL
}
}for (j;j<100;j++){select_type[k][j]='\0';} //setting every other empty field in current row of select_type to NULL
} k++;
// } g=k; **//HERE I AM GETTING THE ERROR**
for (k;k<10;k++){for(j=0;j<100;j++){select_type[k][j]='\0'; }}
}
答案 2 :(得分:0)
您应始终缩进代码以避免此类错误。您可以找到不同的缩进样式,选择您最喜欢的缩进样式
http://en.wikipedia.org/wiki/Indent_style
还有自动缩进工具,下面是您的代码正确缩进
void store_field(int num_fields,unsigned long *lengths,MYSQL_ROW row,char select_type[10][100])
{
int i,j,k,g;
for( i=1;i < num_fields;i=i+10)
{
for (j=0;j<lengths[i];j++)
{
if (row[i] != NULL)
{
select_type[k][j] = *row[i];
row[i]++;
}
if (row[i] == NULL)
{
select_type[k][j]= '\0';
printf ( "NULL\n");
break; // row[i] is null for fields containing NULL
}
}
for (j;j<100;j++)
{
select_type[k][j]='\0';
}
}
k++;
}
g=k; **//HERE I AM GETTING THE ERROR**
for (k;k<10;k++){for(j=0;j<100;j++)
{
select_type[k][j]='\0';
}
}
}
所有错误和额外括号立即变得明显。检查一些代码风格指南,有很多,选择你喜欢的,并坚持使用。