首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问一个有关问题?

2012-02-22 
请教一个问题??#include stdio.h  intinc(inta)  {   return(++a)  }  typedefint(FUNC1)(intin)//为

请教一个问题??
#include <stdio.h>
  int   inc(int   a)
  {
   return(++a);
  }
  typedef   int(FUNC1)(int   in);//为什么不是typedef   int(*   FUNC1)(int   in);//
  
  FUNC1   p=&inc;


[解决办法]
帮你顶一下
应该是小问题
[解决办法]
可以这样申明,带了*是申明的指针类型,不带*是申明的非指针类型。但使用的时候要用指针,比如下面这个例子:

#include <stdio.h>
#include <stdlib.h>

int inc(int a) {
return (++a);
}

typedef int (FUNC1)(int in);//为什么不是typedef int(* FUNC1)(int in);//
typedef int (*func2) (int); // 这个是定义的函数指针

int main() {
FUNC1* fun1 = inc; // 申明函数指针变量的时候要加*
func2 fun2 = inc; // 申明函数指针变量的时候不用加*

int x = 0;
int y = fun1(x);
int z = fun2(x);

printf( "%d, %d, %d ", x, y, z);

return 0;
}

[解决办法]
typedef int(FUNC1)(int in);这种定义应该很少的,我还没见过。
[解决办法]
一般定义函数类型都是为了使用函数指针,所以一般情况下定义的时候就定义成指针,使用起来方便一些。

热点排行