1.为什么这样定义编译时候会报错:error: multiple storage classes in declaration specifiers
typedef static int INT32
百度搜到的答案:typedef是存储类的关键字,和auto、static、register一样是存储类关键字,所以在使用typedef时不能再出现其他存储类的关键字;
2.这样编译能通过吗?
/*这是*/#/*一条*/define/*合法*/ID/*预处理*/"replacement"/*指*/"list"/*令*/
亲测可以通过;
需要注意一下知识点:
1. 编译器在预处理的时候会将注释剔除,但是不是简单的剔除,而是使用空格代替原来的注释;
2. “/*...*/”这种形式的注释不能嵌套使用;如“/*.../*.....*/...*/”是非法的;
3.这样为啥会编译失败?
int z = x/*y;
原因是编译器把 /* 当做了注释行的开始,但是一直没有找到*/在注释的结束;
可修改为:将 / 和 * 隔开即可;
int z = x/ *y; 或int z = x/(*y);