假设我们有一段代码:
int random_function random_variable
(
struct struct_name *
);
这会是有效的语法吗?如果是这样,稍后在程序中如何引用指针?
假设我们有一段代码:
int random_function random_variable
(
struct struct_name *
);
这会是有效的语法吗?如果是这样,稍后在程序中如何引用指针?
不,示例代码的语法无效。编译尝试将表明这一点。
重写您所要求的内容是以下示例,您问“如何在程序中稍后引用(匿名结构)指针?”
int random_function(int random_variable) {
// Supposed Anonymous Struct Pointer, but invalid syntax.
struct struct_name *;
}
看来你正在混合什么是匿名的。您的示例暗示您认为结构具有名称并且变量是匿名的,如果发生这种情况会使其无法访问。
匿名结构指针的正确示例是
int random_function(int random_variable) {
struct /* no structure tag here */ {
int a;
int b;
} *variable_name;
variable_name = malloc(sizeof *variable_name);
variable_name->a = 1;
variable_name->a = 2;
return variable_name->a;
}
在这里你可以看到结构没有标签,这使它成为一个匿名结构。 variable_name
成为指向匿名结构的指针。以通常的方式访问该变量。