-6

假设我们有一段代码:

int random_function random_variable                                   
  (                                                                 
   struct   struct_name *               
  );  

这会是有效的语法吗?如果是这样,稍后在程序中如何引用指针?

4

1 回答 1

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成为指向匿名结构的指针。以通常的方式访问该变量。

于 2013-06-01T23:40:58.497 回答