title: Storage size of struct isn't known C++
body: <p>I get this following error when I do this</p>
  
  <p>"error: storage size of 'mscp_commands' isn't known"</p>
  
  <pre><code>struct command mscp_commands[]; /* forward declaration */
  </code></pre>
  
  <p>Later on I have:</p>
  
  <pre><code>struct command mscp_commands[] = {
   { "help",      cmd_help,       "show this list of commands"            },
   { "bd",        cmd_bd,         "display board"                         },
   { "ls",        cmd_list_moves, "list moves"                            },
   { "new",       cmd_new,        "new game"                              },
   { "go",        cmd_go,         "computer starts playing"               },
   { "test",      cmd_test,       "search (depth)"                        },
   { "quit",      cmd_quit,       "leave chess program"                   },
   { "sd",        cmd_set_depth,  "set maximum search depth (plies)"      },
   { "both",      cmd_both,       "computer plays both sides"             },
  };
  </code></pre>
  
  <p>What's wrong with forward declaring the struct mscp_commands that way?</p>
  
  <p>The command struct is defined  earlier:</p>
  
  <pre><code>struct command {
      char *name;
      void (*cmd)(char*);
      char *help;
  };
  </code></pre>