嵌套函数被禁用,使用 -fnested-functions 重新启用
我显示此错误:嵌套函数被禁用,使用 -fnested-functions 重新启用,我在 MAC 上运行,您对导致此错误的原因有何看法?
这是一个与客户和销售人员一起列出清单的程序。它找到一个客户端,删除它们并
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "clientes.h"
int ordena(LISTA1 *inicio,LISTA1 *aux,LISTA1 *nodo,LISTA1 *aux2);
int agrega_cliente(LISTA1 *inicio, LISTA1*aux,LISTA1 *nodo,LISTA1 *aux2);
int busca_cliente(LISTA1 *inicio, LISTA1*aux,LISTA1 *nodo,LISTA1 *aux2,LISTA2 *inicioventas,LISTA2 *auxventas,LISTA2 *nodoventas,LISTA2 *aux2ventas);
extern void agrega_nombre();
int main(void)
{
int menu,pops=0;
LISTA1 *inicio, *aux,*nodo, *aux2;
inicio=NULL;
aux=inicio;
LISTA2 *inicioventas, *auxventas,*nodoventas, *aux2ventas;
system("clear");
//funcion void carga_datos();
ordena(inicio,aux,nodo,aux2);
printf("TIENDA DEPARTAMENTAL\n\n\n");
printf("1. Agregar a un Cliente.\n2. Agregar una venta.\n3. Buscar Cliente. \n4. Borrar Cliente. \n5. Borrar una venta. \n6. Salir.");
printf("\n\nElige una opcion: ");
scanf("%d", &menu);
switch(menu)
{
case 1:
system("clear");
printf("opcion1\n");
agrega_cliente(inicio,aux,nodo,aux2);
break;
case 2:
system("clear");
printf("opcion2\n");
break;
case 3:
system("clear");
printf("opcion3\n");
busca_cliente(inicio,aux,nodo,aux2,inicioventas, auxventas, nodoventas, aux2ventas);
puts(aux2->nombre);
break;
case 4:
system("clear");
printf("opcion4\n");
break;
case 5:
system("clear");
printf("opcion5\n");
break;
case 6:
system("clear");
printf("opcion6\n");
break;
}
}
///Funcion Busqueda
int busca_cliente(LISTA1 *inicio, LISTA1 *aux,LISTA1 *nodo,LISTA1 *aux2,LISTA2 *inicioventas,LISTA2 *auxventas,LISTA2 *nodoventas,LISTA2 *aux2ventas)
{
char nombrebusqueda[80];
int numclienteprueba;
printf("Dame el nombre del cliente a buscar\n");
scanf("%s",nombrebusqueda);
aux2=aux;
while(aux2!=NULL)
{
if((strcmp(nombrebusqueda,aux2->nombre))==0)
{
puts(aux2->nombre);
////////Buscamos la venta
aux2ventas=aux;
while(aux2ventas!=NULL)
{
numclienteprueba=aux2ventas->num_clienteventas;
if(numclienteprueba==aux2ventas->num_clienteventas)
{
printf("Wow");
}
////////////
}
aux2=aux2->sig;
}
}
////////////////////////////////////////////Funcion Ordena
int ordena(LISTA1 *inicio, LISTA1*aux,LISTA1 *nodo,LISTA1 *aux2)
{
char pruebaman[80],probaman[80];//nombres
char pruebadireccion[150],probadireccion[150];//direccion
int pruebanum_cliente,probanum_cliente;//numero de cliente
aux2=aux;
strcpy(pruebaman,aux2->nombre);
strcpy(pruebadireccion,aux2->direccion);
pruebanum_cliente=aux2->num_cliente;
aux2=aux2->ant;
do
{
strcpy(probaman,aux2->nombre);
if(pruebaman[0]<probaman[0])
{
strcpy(pruebaman,aux2->nombre);
strcpy(pruebadireccion,aux2->direccion);
pruebanum_cliente=aux2->num_cliente;
aux2=aux2->sig;
strcpy(aux2->nombre,probaman);
strcpy(aux2->direccion,probadireccion);
probanum_cliente=aux2->num_cliente;
}
strcpy(pruebaman,aux2->nombre);
strcpy(pruebadireccion,aux2->direccion);
pruebanum_cliente=aux2->num_cliente;
aux2=aux2->ant;
printf("Ciclo\n\n");
}
while(aux2!=NULL);
aux2=aux;
strcpy(pruebaman,aux2->nombre);
aux2=aux2->ant;
strcpy(probaman,aux2->nombre);
if(pruebaman[0]<probaman[0])
ordena(inicio,aux,nodo,aux2);
}
///////////////////////////////////////////////////////Agrega Cliente
int agrega_cliente(LISTA1 *inicio, LISTA1*aux,LISTA1 *nodo,LISTA1 *aux2)
{
FILE *clientes;
clientes=fopen("clientes.txt", "a+");
//fseek(clientes, 0L, SEEK_END);
inicio=NULL;
nodo=malloc(sizeof(LISTA1));
aux=malloc(sizeof(LISTA1));
if(nodo==NULL)
{
printf("No hay memoria\n");
exit(1);
}
printf("NOMBRE: ");
gets(nodo->nombre);
printf("DIRECCION: ");
gets(nodo->direccion);
printf("NUMERO DE CLIENTE: ");
scanf("%d", &nodo->num_cliente);
if(inicio==NULL)
{
inicio=nodo;
inicio->sig=NULL;
inicio->ant=NULL;
aux=inicio;
}
else
{
aux->sig =nodo;
nodo->ant=aux;
aux=nodo;
nodo->sig=NULL;
}
nodo=malloc(sizeof(LISTA1));
aux2=inicio;
while(aux2!=NULL)
{
fprintf(clientes, "%s\n", aux2->nombre);
fprintf(clientes, "%s\n", aux2->direccion);
fprintf(clientes, "%d\n", aux2->num_cliente);
puts(aux2->nombre);
puts(aux2->direccion);
aux2=aux2->sig;
}
aux2=aux;
do
{
puts(aux2->nombre);
aux2=aux2->ant;
}
while(aux2!=NULL);
fclose(clientes);
}
Im Displaying This Error: nested functions are disabled, use -fnested-functions to re-enable ,Im running on a MAC what are your thoughts on what causes it?
This is a program that makes a list with clients and sales. It finds a client, erase them and
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "clientes.h"
int ordena(LISTA1 *inicio,LISTA1 *aux,LISTA1 *nodo,LISTA1 *aux2);
int agrega_cliente(LISTA1 *inicio, LISTA1*aux,LISTA1 *nodo,LISTA1 *aux2);
int busca_cliente(LISTA1 *inicio, LISTA1*aux,LISTA1 *nodo,LISTA1 *aux2,LISTA2 *inicioventas,LISTA2 *auxventas,LISTA2 *nodoventas,LISTA2 *aux2ventas);
extern void agrega_nombre();
int main(void)
{
int menu,pops=0;
LISTA1 *inicio, *aux,*nodo, *aux2;
inicio=NULL;
aux=inicio;
LISTA2 *inicioventas, *auxventas,*nodoventas, *aux2ventas;
system("clear");
//funcion void carga_datos();
ordena(inicio,aux,nodo,aux2);
printf("TIENDA DEPARTAMENTAL\n\n\n");
printf("1. Agregar a un Cliente.\n2. Agregar una venta.\n3. Buscar Cliente. \n4. Borrar Cliente. \n5. Borrar una venta. \n6. Salir.");
printf("\n\nElige una opcion: ");
scanf("%d", &menu);
switch(menu)
{
case 1:
system("clear");
printf("opcion1\n");
agrega_cliente(inicio,aux,nodo,aux2);
break;
case 2:
system("clear");
printf("opcion2\n");
break;
case 3:
system("clear");
printf("opcion3\n");
busca_cliente(inicio,aux,nodo,aux2,inicioventas, auxventas, nodoventas, aux2ventas);
puts(aux2->nombre);
break;
case 4:
system("clear");
printf("opcion4\n");
break;
case 5:
system("clear");
printf("opcion5\n");
break;
case 6:
system("clear");
printf("opcion6\n");
break;
}
}
///Funcion Busqueda
int busca_cliente(LISTA1 *inicio, LISTA1 *aux,LISTA1 *nodo,LISTA1 *aux2,LISTA2 *inicioventas,LISTA2 *auxventas,LISTA2 *nodoventas,LISTA2 *aux2ventas)
{
char nombrebusqueda[80];
int numclienteprueba;
printf("Dame el nombre del cliente a buscar\n");
scanf("%s",nombrebusqueda);
aux2=aux;
while(aux2!=NULL)
{
if((strcmp(nombrebusqueda,aux2->nombre))==0)
{
puts(aux2->nombre);
////////Buscamos la venta
aux2ventas=aux;
while(aux2ventas!=NULL)
{
numclienteprueba=aux2ventas->num_clienteventas;
if(numclienteprueba==aux2ventas->num_clienteventas)
{
printf("Wow");
}
////////////
}
aux2=aux2->sig;
}
}
////////////////////////////////////////////Funcion Ordena
int ordena(LISTA1 *inicio, LISTA1*aux,LISTA1 *nodo,LISTA1 *aux2)
{
char pruebaman[80],probaman[80];//nombres
char pruebadireccion[150],probadireccion[150];//direccion
int pruebanum_cliente,probanum_cliente;//numero de cliente
aux2=aux;
strcpy(pruebaman,aux2->nombre);
strcpy(pruebadireccion,aux2->direccion);
pruebanum_cliente=aux2->num_cliente;
aux2=aux2->ant;
do
{
strcpy(probaman,aux2->nombre);
if(pruebaman[0]<probaman[0])
{
strcpy(pruebaman,aux2->nombre);
strcpy(pruebadireccion,aux2->direccion);
pruebanum_cliente=aux2->num_cliente;
aux2=aux2->sig;
strcpy(aux2->nombre,probaman);
strcpy(aux2->direccion,probadireccion);
probanum_cliente=aux2->num_cliente;
}
strcpy(pruebaman,aux2->nombre);
strcpy(pruebadireccion,aux2->direccion);
pruebanum_cliente=aux2->num_cliente;
aux2=aux2->ant;
printf("Ciclo\n\n");
}
while(aux2!=NULL);
aux2=aux;
strcpy(pruebaman,aux2->nombre);
aux2=aux2->ant;
strcpy(probaman,aux2->nombre);
if(pruebaman[0]<probaman[0])
ordena(inicio,aux,nodo,aux2);
}
///////////////////////////////////////////////////////Agrega Cliente
int agrega_cliente(LISTA1 *inicio, LISTA1*aux,LISTA1 *nodo,LISTA1 *aux2)
{
FILE *clientes;
clientes=fopen("clientes.txt", "a+");
//fseek(clientes, 0L, SEEK_END);
inicio=NULL;
nodo=malloc(sizeof(LISTA1));
aux=malloc(sizeof(LISTA1));
if(nodo==NULL)
{
printf("No hay memoria\n");
exit(1);
}
printf("NOMBRE: ");
gets(nodo->nombre);
printf("DIRECCION: ");
gets(nodo->direccion);
printf("NUMERO DE CLIENTE: ");
scanf("%d", &nodo->num_cliente);
if(inicio==NULL)
{
inicio=nodo;
inicio->sig=NULL;
inicio->ant=NULL;
aux=inicio;
}
else
{
aux->sig =nodo;
nodo->ant=aux;
aux=nodo;
nodo->sig=NULL;
}
nodo=malloc(sizeof(LISTA1));
aux2=inicio;
while(aux2!=NULL)
{
fprintf(clientes, "%s\n", aux2->nombre);
fprintf(clientes, "%s\n", aux2->direccion);
fprintf(clientes, "%d\n", aux2->num_cliente);
puts(aux2->nombre);
puts(aux2->direccion);
aux2=aux2->sig;
}
aux2=aux;
do
{
puts(aux2->nombre);
aux2=aux2->ant;
}
while(aux2!=NULL);
fclose(clientes);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您缺少
busca_cliente()
末尾的右括号。我是怎么知道的?我将您的代码粘贴到 http://www.prettyprinter.de/module.php?name= PrettyPrinter 以便于阅读。You are missing the closing bracket at the end of
busca_cliente()
. How did I find out? I pasted your code into http://www.prettyprinter.de/module.php?name=PrettyPrinter so that it was easy to read.