typedef static int INT32为什么编译失败了?

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);

 

posted @ 2020-04-09 20:08  唯一诺  阅读(1087)  评论(0)    收藏  举报