'What is the correct placement of names and types in the typedef syntax?

Usually the syntax of typedef is as follows

typedef <existing_name> <new_name>

But in the following case, I am bit confused

  typedef char yes[1];
  typedef char no[2];

This above seems to work. Why and how?

Shouldn't this be written as below?

  typedef yes char[1];
  typedef no char[2];


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source