title: Why can I not have a struct with a member named "refresh" when using ncurses?
body: <p>I'm making an ncurses application, and I've come accross something that's puzzling.</p>
  
  <p>If you have a struct with a member named "refresh" that is a function pointer, and you call that function later, you will get the following compile-time error:</p>
  
  <pre><code>main.c:20:10: error: ‘Point’ has no member named ‘wrefresh’
       point.refresh();
  </code></pre>
  
  <p>Here's a little test you can try to compile:</p>
  
  <pre><code>#include &lt;ncurses.h&gt;
  
  typedef struct PointStruct Point;
  
  void Point_refresh() {
  
  }
  
  struct PointStruct {
      int x;
      int y;
      void (*refresh)();
  };
  
  int main() {
      Point point;
      point.x = 0;
      point.y = 0;
      point.refresh = &amp;Point_refresh;
      point.refresh();
  }
  </code></pre>
  
  <p>That will give you the error mentioned above. However, if you take out the first line that includes ncurses, it will compile with no issues.</p>
  
  <p>What is the reason that this does not work with ncurses, and is there a way around it? It's not really a big deal, just a slight annoyance that I have to rename that member.</p>