一个C语言的问题

[复制链接]
2323|15
 楼主| 一群群的过 发表于 2013-9-29 15:58 | 显示全部楼层 |阅读模式
我在程序里定义了如下的函数
void test(void)
{
...
}
我想知道如果我用了test;
而不是用test();
那我用的是什么?先申明,这个不会报错,且程序能运行,但结果是错的,我被这个东西卡了一天,嘎嘎···
ayb_ice 发表于 2013-9-29 16:30 | 显示全部楼层
test表示地址
ballack_linux 发表于 2013-9-29 17:24 | 显示全部楼层
test是函数入口地址啊,可以传递给函数指针,test()是函数调用,执行该函数
sunhq02 发表于 2013-9-29 18:00 | 显示全部楼层
test表示函数的入口地址, 是一个数值
sunhq02 发表于 2013-9-29 18:01 | 显示全部楼层
如果是  test; 的话, 就是一个数值为 test的语句, 然后啥也不干
很忙 发表于 2013-9-30 08:37 | 显示全部楼层
你可以这样测试一下,
char a;
a=test;
这个时候肯定会报错,报错系统会提示什么错误,我这里显示的
不可移动的指针(地址常数)赋值。所以执行下test;
可以理解为这里就是地址常数。
酸梅汤 发表于 2013-9-30 15:07 | 显示全部楼层
test是一个地址
sepler 发表于 2013-9-30 15:20 | 显示全部楼层
crazy2012 发表于 2013-9-30 15:27 | 显示全部楼层
函数的入口地址
puppet21 发表于 2013-9-30 16:17 | 显示全部楼层
敢问一下楼主有没有用过函数指针?

函数指针是怎么赋值的?

看一下这个你就明白为什么test不能这么用了~!!!!
wangflw 发表于 2013-9-30 16:28 | 显示全部楼层
6楼说的很直白了。test;没有什么意义,没执行子函数。
游浪星 发表于 2013-10-3 07:39 | 显示全部楼层
test 就是函数地址,跟&test是一样的
outstanding 发表于 2013-10-3 07:53 | 显示全部楼层
你那个test单独使用,意义不是太大。
linfeng24 发表于 2013-10-3 20:18 | 显示全部楼层
看看谭浩强老师的书,函数那章知识你就懂了。
xiaoyuan_ly 发表于 2013-10-8 16:14 | 显示全部楼层
在编译后,test符号代表的是一个地址。具体请自己查看C语言和你用的C编译器。
diweo 发表于 2013-10-8 16:22 | 显示全部楼层
结果没有错,只是和你预想的不一样。
错的是你的用法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

23

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部