C语言学生信息管理系统时
register
当如下定义并置零时 char register[100]={0}
报错
———- gcc编译并运行 ———-
practise.cpp: In function ‘void rank()’:
practise.cpp:15:15: error: expected unqualified-id before ‘[’ token
char register[1024]={0};//register
^
输出完成 (耗时 0 秒) - 正常终止
翻译原因大概是未修饰的标识符
意味着register这个已经有了一个宏定义
百度搜索regiseter
register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。例如下面的内存块拷贝代码,
#ifdef NOSTRUCTASSIGN
memcpy (d, s, l)
{
register char *d;
register char *s;
register int i;
while (i--)
*d++ = *s++;
}
#endif
解决办法
- *更改结构体重成员变量的名字,与宏定义中BCD不同->编译通过
- 其他情况 有的时候在宏定义已经定义的情况可以使用 undef XXX 取消宏定义
引用
http://blog.sina.com.cn/s/blog_6a1837e90101128k.html
http://blog.sina.com.cn/s/blog_62eb16bb0101ci5n.html