鱼C论坛

 找回密码
 立即注册
查看: 2454|回复: 5

函数问题求助

[复制链接]
发表于 2016-12-26 23:10:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
出现的问题是,写了一个void函数,想在main函数中执行,却行不通,直接跳过了这个函数。
代码如下:void menu()
{
        printf("  菜单:\n");
        printf("1.建立链表\n");
        printf("2.显示链表\n");
        printf("3.查找信息\n");
        printf("4.删除信息\n");
        printf("5.增加信息\n");
        printf("6.退出系统\n");
        printf("请选择要执行的操作:");
        scanf("%d",&choose);                //choose是全局变量
        while(choose<1||choose>6)
        {
                printf("输入错误,请重新输入:");
                scanf("%d",&choose);
        }
        switch(choose)
        {
                case 1:                        ;break;
                case 2:                        ;break;
                case 3:                        ;break;
                case 4:                        ;break;
                case 5:                        ;break;
                case 6:                        ;exit(0);
        }
}
int main()
{
        menu;                //问题主要在这儿
        return 0;
}
求教为什么不行呢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-27 08:36:09 | 显示全部楼层
    menu;                //问题主要在这儿
menu(); 应该这样吧,不加()编译器可能不知道这是个函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-27 09:02:08 | 显示全部楼层
lzgw 发表于 2016-12-27 08:36
menu;                //问题主要在这儿
menu(); 应该这样吧,不加()编译器可能不知道这是个函数

问题解决了~谢谢啦,不过为什么呢?我之前引用void型的函数不加()也可以成功,难道是头文件里有menu函数吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-27 09:05:35 | 显示全部楼层
lzgw 发表于 2016-12-27 08:36
menu;                //问题主要在这儿
menu(); 应该这样吧,不加()编译器可能不知道这是个函数

回去检查了下以前编的程序,发现没用过void fun(void)型的~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-27 09:26:31 | 显示全部楼层
hannikodo 发表于 2016-12-27 09:02
问题解决了~谢谢啦,不过为什么呢?我之前引用void型的函数不加()也可以成功,难道是头文件里有menu函 ...

这些都是语法问题,也就是说我们编写代码要遵循一定的规则,这样编译器才能识别。好比你现在什么都不会,然后我告诉你1+1=2。问6*8=?。这时候你肯定无法计算出结果。因为你不会,没人告诉你这个答案。但是如果我告诉你6*8=48。哪我再问你的时候,你自然就知道答案了。
    语法就是人们将一定的规则编写到编译器中,然后编译器按照这个规则进行代码解析。int a;这样的编译器就知道这是在申明一个变量。void menu();这样的编译器就知道你想申明一个函数。
    所以,语法是没有为什么的,就是强制规定,你这样做了,编译器才能认出来。你说你之前有成功过,最好能把代码发出来,这样才能清晰的看到问题。
    编译器也是人写的,所以存在漏洞也是必然的。而且,语法这个东西,谁也不能保证把每个细节都掌握的很透彻。说不定menu;这样调用函数他就可以呢?
    所以,不用太在意这些细节,在真正的编程过程中你只需要掌握一套正确的编译器可识别的语法规则就可以了。学语法的目的就是让机器能够认识自己的代码,这就是语法的核心。PHP有PHP的语法,C++有C++的语法,java有java的语法。每种语言都会有自己一套识别代码的规则。像易语言,你写汉字他还能认识呢。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-27 12:41:00 | 显示全部楼层
musilintan 发表于 2016-12-27 09:26
这些都是语法问题,也就是说我们编写代码要遵循一定的规则,这样编译器才能识别。好比你现在什么都不会, ...

嗯嗯,是我想的太理所当然了,谢谢层主的回答,受教了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-9 01:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表