就像“typedef int arrChoice [5];”全局变量?

时间:2012-08-07 03:47:30

标签: c arrays variables global

#include <stdio.h>
#include <conio.h>
typedef arrChoice[10] /*is this a global variable?*/
int main() {};

  getch();
  return 0;
}

尚未完成,但这就是我的意思。

3 个答案:

答案 0 :(得分:1)

typedef不是全局变量,它只是另一种类型的别名。当我传递它们时,我通常将它们用于函数指针,因为每次写出它都很烦人。

typedef int (*function)(int, int);

我还使用它们将结构,联合或枚举定义为类型

typedef struct {
    int x;
    int y;
    int z;
} Point;

答案 1 :(得分:0)

typedef声明新类型不是变量。

答案 2 :(得分:0)

这可能会对你有所帮助。在您发布的代码中,存在错误。侧主函数中没有语句。 getch和return语句应该在main函数内部。我觉得你的代码应该是这样的。

#include <stdio.h>
typedef int  arrChoice; /* arrChoice is alias to int */
arrChoice a[10] ;/* array a is a global variable of integers*/
int main()
{
 getch();
 return 0;
}

请注意,typedef的目的是为现有类型(int,float,double等)指定替代名称。以下陈述类似。

typedef arrChoice[10]  is similar to typedef int[10];

当您尝试引用arrChoice时,会收到错误消息

expected expression before 'arrChoice'.