在c程序中使用typedef时出现问题

时间:2014-12-26 06:11:05

标签: c pointers types typedef

我的功能如下:

void deleteNode ( node **my_head, int t_data )
{
 typedef (*my_head) head;    
}

我想为双指针(* my_head)的值设置别名。 在编译时我收到以下错误:

<error: expected '=', ',', ';', 'asm' or '__attribute__' before 'head'>

我确实有一个解决方法,但我仍然需要做这项工作。 任何人都可以帮我解决这个问题!

3 个答案:

答案 0 :(得分:3)

您需要为类型设置别名,而不是变量名。

typedef node** head;

答案 1 :(得分:2)

typedef的

语法是

typedef <old type name> <new alias>;

所以在这里你应该使用

typedef node** head

答案 2 :(得分:0)

请注意命名法typedef。它用于类型定义。确切地说,typedef用于定义 new 类型,而不是您期望的变量名称别名。

根据c99标准,第6.7.2章类型说明符是

  • 空隙
  • INT
  • 签名
  • 无符号
  • _Bool
  • _Complex
  • _Imaginary
  • 结构 - 或联合说明符
  • 枚举说明符
  • 的typedef名

因此,您可以将typdef用于这些类型。您要尝试的是将typedef 变量名称 一起使用。那是 允许的。

正如其他人指定的那样,你必须以格式

使用typedef
typedef <old type name> <new alias>;