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

 

相关文章:

  • 2021-09-02
  • 2021-10-02
  • 2021-12-08
  • 2021-05-25
  • 2021-05-22
  • 2022-01-17
  • 2022-12-23
  • 2021-07-29
猜你喜欢
  • 2021-04-07
  • 2021-09-14
  • 2021-06-07
  • 2021-08-10
  • 2021-07-02
  • 2021-09-15
相关资源
相似解决方案