【发布时间】:2011-09-03 22:53:01
【问题描述】:
#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;
}
如果我使用 #define 而不是 const 它会编译。 这是错误:
employee.c:5:14:错误:在文件范围内可变地修改了“NameType” employee.c:6:14:错误:在文件范围内可变地修改了“AddrType”
【问题讨论】:
-
它给出了什么错误?
-
不应该是
const int而不是int const吗? -
int const在 C++ 中有效 - 不确定他们是否也使相同的东西在 C 中有效。 -
也许是这样..我把它们换了,它仍然无法编译..我使用的是 gcc 4.5.3
标签: c