Consider:
#include <stdio.h>
int const NAMESIZE = 40;
int const ADDRSIZE = 80;
typedef char NameType[NAMESIZE];
typedef char AddrType[ADDRSIZE];
typedef struct
{
    NameType name;
    AddrType address;
    double salary;
    unsigned int id;
} EmpRecType;
int main(int * argc, char * argv[])
{
    EmpRecType employee;
    return 0;
}
If I use #define instead of const it compiles.
This is the error:
employee.c:5:14: error: variably modified 'NameType' at file scope
employee.c:6:14: error: variably modified 'AddrType' at file scope
 
     
     
    