尽量已 const , enum , inline ,替换#define

  1.  #define 定义的符号可能没有被编译器看见,生成符号表的时候没有被存与symbol内,define还可能会是宏 名称替换,导致目标码生成多份数值,解决方法 const int 
  2. 当我们想要封装性时候,在类里声明一个static变量,#define 没有封装性,并没有private define 这种东西。
  3. 有一些老版的编译器不支持static在其声明式上获得初值,这时候我们使用enmu枚举变量型,enum 比较像define 而不像const ,enum 和define 一样不能被取地址
  4. #define txt(a,b) f( (a) > ( b)  ? (a) : (b) )
    
    
    
    
    
    int a=5,b=0;
    txt(++a,b);      // a 被累加2次
    txt(++a,b+10); // a被累加1次

    a的增长次数取决于和谁比

  5. #ifdef/ifndef还是扮演了很重要的角色
posted @ 2020-04-01 00:43  Xzavieru  阅读(83)  评论(0编辑  收藏  举报