我不能使用<nameofmystructure> * this作为函数的参数</nameofmystructure>

时间:2014-03-24 13:34:10

标签: c

这是我遇到问题的代码:

typedef const char* sun_date_t;
typedef const char* sun_time_t;

typedef struct sun_t {
  int luminosity;

  /* private */
  sun_date_t date;
  sun_time_t time;
  sun_time_t sunrise;
  sun_time_t sunset;

  pthread_t tid;
  pthread_mutex_t mutex;
} sun_t;

void sun_parse_data (sun_t* this, FILE* f){.....}

如你所见,我定义了一个结构,在我尝试将其作为指向这个&#34; sun_t&#34;的指针后,但是编译器说我需要编写&#39;,&#39;或者&#39; ....&#39;之前&#39;这个&#39;。任何想法如何解决?

1 个答案:

答案 0 :(得分:2)

您必须编译为C ++,因为thiskeyword in C++中的C it is not,但如果您使用this作为变量名称可能不是一个好主意想要稍后移植代码。

代码可以很好地编译为C程序:see it live但是当我们尝试编译为C ++程序时,我们会看到相同的错误:see it live

  

错误:在'this'之前预期','或'...'