假设我们有一段代码:
int random_function random_variable
(
struct struct_name *
);
这是有效的语法吗?如果是这样,以后如何在程序中引用指针?
答案 0 :(得分:3)
不,示例代码的语法无效。编译尝试将显示。
重写到你要问的是下面的例子,你问“如何在程序中稍后引用(匿名结构)指针?”
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
成为匿名结构的指针。该变量以通常的方式访问。