目前,我在理解具有指针的 typedef 概念时遇到了一些困难。假设我们有这个:
struct command
{
int type;
int *input;
int *output;
union{
struct command *command[2];
char **word;
}u;
};
typedef struct command *command_t;
command_t read_command(){
command_t main1;
command_t main2;
//some code that set the instance of main1
//some code that set the instance of main2
if(main1->u->command[0] == main2->u->command[1])
{
main1 = *main2;
main2 = NULL;
}
//some other code in here
}
我的问题是,因为 command_t 定义为指向命令的指针。在 if 语句中,在将 main2 的实例放到 main1 之前,我应该先取消对 main2 的引用吗?如果我做这样的事情,我会精简语句“main2 = NULL;” 不会将对象 main1 设置为 NULL,对吗?谢谢你。