主函数所在cpp: #include "menu_1.cpp" #include "menu_2.cpp" void main(){ char choice; do{ choice=_getch(); }while(choice!='0'&&choice!='1') switch(choice) case '0': menu_1(); case '1': menu_2(); } menu_1()所在menu_1.cpp: void menu_1(){ //其他操作 char choice; do{ choice=_getch(); }while(choice!='0'&&choice!='1') switch(choice) case '0': exit(0); case '1': menu_2(); } menu_2()所在menu_2.cpp: void menu_2(){ //其他操作 char choice; do{ choice=_getch(); }while(choice!='0'&&choice!='1') switch(choice) case '0': exit(0); case '1': menu_1(); } 由于作业需要,必须将menu_1和menu_2放在两个cpp文件中,但按我那样在主函数前声明的话,编译时会在menu_1.cpp中menu_2();那一行显示无法识别标识符menu_2(),哪位老虾帮帮忙,指点下该怎么声明? 编辑环境是VisualStudio2008
把 #include "menu_1.cpp" #include "menu_2.cpp" 这两句换成 extern void menu_1(); extern void menu_2(); 在menu_1.cpp开头加上extern void menu_2(); 在menu_2.cpp开头加上extern void menu_1(); 还有,你的代码中有语法错误 void main() { char choice; do { choice=_getch(); } while(choice!='0'&&choice!='1'); // 这里要加分号 switch(choice) { // switch后面要跟大括号 case '0': menu_1(); break; // 这里要加break case '1': menu_2(); break; default:; } } main(), menu_1(),menu_2(),都是如此。 此外,不知道你的"menu_1.cpp""menu_2.cpp"是否包含了_getch,exit的头文件 要记得包含上