关于C语言函数声明和调用有关问题

关于C语言函数声明和调用问题
这个例子是《C Primer plus》的第八章8.8的程序,我敲了下来运行,发现红色mark的那行没有运行,问
朋友说是局部声明,不是调用,调用无需两个void,他说的对吗?另外还有一个疑问,函数局部声明用途是什么吗,如果举例就太感谢了~
我的运行环境:ubuntu,GCC编译器

/* menuette.c -- menu techniques */
#include <stdio.h>
char get_choice(void);
char get_first(void);
int get_int(void);
void count(void);
int main(void)
{
    int choice;
    void count(void);//问题?

    while( (choice = get_choice()) != 'q')
    {
switch (choice)
{
    case 'a': printf("Buy low, sell high.\n");
      break;
    case 'b': putchar('\a'); /* ANSI */
      break;
    case 'c': count();
      break;
    default : printf("Program error!\n");
      break;
}
    }
    printf("Bye.\n");

    return 0;
}
C 函数声明

------解决方案--------------------
说的对, 调用的话一个 void 也不能用.
局部声明的出了这个函数, 其它地方要用的话还得重新声明. 它的作用域只从声明的地方到函数结束.
------解决方案--------------------
这的确是声明。。调用的话无需void。。。直接count()就可以了。。
------解决方案--------------------
引用:
这的确是声明。。调用的话无需void。。。直接count()就可以了。。

+1
------解决方案--------------------
没有花括号所以是声明;否则编译器会认为这是调用;
只要在调用行case 'c': count();之前声明即可
我一般都在外部声明
------解决方案--------------------
打错了"否则编译器会认为这是定义
调用是不能写返回类型的,非void的可以赋给变量(必须带"="
------解决方案--------------------
声明count函数,让后面的代码可以找的到它。
------解决方案--------------------