C语言local function definitions are illegal
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言local function definitions are illegal相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
#include <string.h>
void main()
void sort(int[],char name[][8]);
void search(int,int[],char name[][8]);
int num[10],number,N=1,c,i;
char name[10][8];
for(i=0;i<10;i++)
printf("input NO.:");
scanf("%d",&num[i]);
printf("input name:");
scanf(name[i]);
sort(num,name);
while(N==1)
printf("input number to look for:");
scanf("%d",&number);
search(number,num,name);
printf("continue or not(Y/N)?");
getchar();
c=getchar();
if(c=='N'||c=='n')
N=0;
void sort(int num[],char name[10][8])
int i,j,min,temp1;
char temp2[8];
for(i=0;i<9;i++)
min=i;
for(j=i;j<10;j++)
if(num[min]>num[j]) min=j;
temp1=num[i];
strcpy(temp2,name[i]);
num[i]=num[min];
strcpy(name[i],name[min]);
num[min]=temp1;
strcpy(name[min],temp2);
printf("result:\n");
for(i=0;i<10;i++)
printf("\n %d%10s",num[i],name[i]);
void search(int n,int num[],char name[10][8])
int top,bott,mid,loca,sign;
top=0;
bott=9;
loca=0;
sign=1;
if((n<num[0])||(N>num[9]))
loca=-1;
while((sign==1) && (top<=bott))
mid=(bott+top)/2
if(n==num[mid])
loca=mid;
printf("No. %d,his name is %s.\n",n,name[loca]);
sign=-1;
else if(n<num[mid])
bott=mid-1;
else
top=mid+1;
if(sign==1||loca==-1)
printf("can not find%d.\n",n);
运行的时候有错误,F:\15\15.cpp(31) : error C2601: 'sort' : local function definitions are illegal
F:\15\15.cpp(51) : error C2601: 'search' : local function definitions are illegal
执行 cl.exe 时出错.
请问是为什么啊,。
#include <stdio.h>
#include <string.h>
void sort(int[],char name[][8]);
void search(int,int[],char name[][8]);
int N = 1;
void main()
int num[10],number,c,i;
char name[10][8];
for(i=0;i<10;i++)
printf("input NO.:");
scanf("%d",&num[i]);
printf("input name:");
scanf(name[i]);
sort(num,name);
while(N==1)
printf("input number to look for:");
scanf("%d",&number);
search(number,num,name);
printf("continue or not(Y/N)?");
getchar();
c=getchar();
if(c=='N'||c=='n')
N=0;
void sort(int num[],char name[10][8])
int i,j,min,temp1;
char temp2[8];
for(i=0;i<9;i++)
min=i;
for(j=i;j<10;j++)
if(num[min]>num[j]) min=j;
temp1=num[i];
strcpy(temp2,name[i]);
num[i]=num[min];
strcpy(name[i],name[min]);
num[min]=temp1;
strcpy(name[min],temp2);
printf("result:\n");
for(i=0;i<10;i++)
printf("\n %d%10s",num[i],name[i]);
void search(int n,int num[],char name[10][8])
int top,bott,mid,loca,sign;
top=0;
bott=9;
loca=0;
sign=1;
if((n<num[0])||(N>num[9]))
loca=-1;
while((sign==1) && (top<=bott))
mid=(bott+top)/2;
if(n==num[mid])
loca=mid;
printf("No. %d,his name is %s.\n",n,name[loca]);
sign=-1;
else if(n<num[mid])
bott=mid-1;
else
top=mid+1;
if(sign==1||loca==-1)
printf("can not find%d.\n",n);
本回答被提问者和网友采纳 参考技术B c语言不允许函数的嵌套定义。
比如:
void funca(void)
...
void funcb(void)
…
仔细检查下,有没有这种形式的函数定义
C lang:Definition function
Ax_note.
- in parameter for show_n_char() is formal parameter
#include <stdio.h>
#include <string.h>
#define NAME "ENOMOTHEM, INC."
#define ADDRESS "101 Beijing China"
#define PLACE "Megapolis, CA 00000"
#define WIDTH 40
#define WJXNUM 40
#define SPACE ' '
// function protype
void show_n_char(char ch, int num);
int main(void)
{
int spaces;
// function call
show_n_char('A',WJXNUM);
printf("
");
putchar('
');
show_n_char('*', WIDTH);
putchar('
');
show_n_char(SPACE, 12);
printf("%s
", NAME);
spaces = (WIDTH - strlen(ADDRESS)) / 2;
show_n_char(SPACE, spaces);
printf("%s
", ADDRESS);
show_n_char(SPACE, (WIDTH - strlen(PLACE)) / 2);
printf("%s
", PLACE);
show_n_char('*', WIDTH);
putchar('
');
return 0;
}
//function definition
void show_n_char (char ch, int num)
{
int count;
for (count = 1; count <= num; count++)
putchar(ch);
}
以上是关于C语言local function definitions are illegal的主要内容,如果未能解决你的问题,请参考以下文章
显示这个错误error C2601: 'maxmin' : local function definitions are illegal是怎么回事?
我的C/C++语言学习进阶之旅使用stb_image库时候报错 multiple definition of ‘stbi_xxxxx‘ 和 previous definition here
我的C/C++语言学习进阶之旅使用stb_image库时候报错 multiple definition of ‘stbi_xxxxx‘ 和 previous definition here