我的职能如下:
void deleteNode ( node **my_head, int t_data )
{
typedef (*my_head) head;
}
我想要一个双指针值的别名(*我的头)。
编译时出现以下错误:
<error: expected '=', ',', ';', 'asm' or '__attribute__' before 'head'>
我确实有一个解决办法,但我仍然需要让这个工作。
有谁能帮我解决这个问题吗!!
最佳答案
请注意术语typedef
。它用于类型定义。准确地说,typedef
用于定义新类型,而不是如您所期望的那样定义变量名别名。
根据c99
标准,第6.7.2章的类型说明符是
空的
烧焦
短的
内景
长的
浮动
双重的
签署
未签名
_布尔
_复杂的
_想象的
结构或联合说明符
枚举说明符
类型定义名
因此,您可以对这些类型使用typdef
。您要尝试的是将typedef
与变量名一起使用。这是不允许的。
正如其他人所指定的,您必须以某种格式使用typedef
typedef <old type name> <new alias>;
关于c - 在C程序中使用typedef时出现的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27653446/