主要内容:由/* */ 引起的凝视错误

有4处凝视错误

#include <stdio.h>
#define N 10
//使用以下宏定义的凝视
#define BSC //
#define BMC /*
#define EMC */ BSC daewawe
BMC fewafewa EMC //凝视优先于宏定义被预处理。当展开宏之前凝视已经处理完成,这是再展开宏出现// /**/就会出错 // 不知道你有没有看出以下凝视中那里除了问题
int main()
{     /*dewag
int test;  // 这里是典型的凝视错误。少了一个凝视的下半部分,从开头的/*到以下遇到的第一个右凝视符曾经,他们之间都被凝视。
    printf("an error\n"); //造成int test; printf();语句都被凝视
    /*dafewageawgeawg測啊測 */ int/**/b; //int和b之间没有空格,这里之所以不会出错是由于凝视/**/被空格替代,证明方式例如以下
# define r 1  //#和define之间能够空格
#/*ee*/define/**fea/int/*feagea*/INT_32   in/**/t a;     int i = r;
    int *p = i
    int j = i/*p;  // 编译器吧/* 当成凝视的一部分,注意这个细节/*之间没有空格就当成凝视的前半部分了 // int test; \
hahahha 这个凝视是正确的哦,\有连接性。vc中\后不能有空格,在gcc、mingw5中能够有
// 使用"//"凝视方法有一个移植性问题。所以採用以下凝视方法是有它的道理的
#if 0    
    // 这里不知道怎么測试了
    void* t;
    p = N * sizeof((int)*t); // 这里不是把未知类型t转换成int型。而是int长度乘以
#endif
    return 0;
}

总结:

1、凝视应当准确、易懂、防止有二义性,错误的凝视有害无益

2、一目了然的语句不加凝视

3、全局数据(全局变量、常量定义等)必需要加凝视

4、凝视採用英文。尽量避免在凝视中使用缩写。由于不一定全部的编译器都能显示中文,你的代码不一定是懂中文的人看

5、数值单位一定要凝视

6、变量范围给出凝视

最新文章

  1. appium常用方法整理
  2. MySQL选择合适的数据类型
  3. 用Object字面量来代替swtich/if...else
  4. Ruby on Rails Tutorial 第一章 之 搭建开发环境
  5. SQL Cursor(游标)
  6. JavaScript框架设计 第14章 动画引擎
  7. centos 64bit 安装与升级 chrome的方法
  8. 将less编译成css的gulp插件
  9. linux 删除和安装java
  10. php多图合并
  11. 怎样将MySQL数据库上传到服务器
  12. Algorithm --&gt; 快速排序
  13. php插入mysql中文数据出现乱码
  14. jquery 第四章
  15. 对于eclipse building workspaces 慢的问题,解决方法
  16. 深入React技术栈之初入React世界
  17. python 变量名的规范
  18. C程序模拟实现银行家算法
  19. js获取url 参数
  20. python学习笔记(四)---python不能输出中文问题

热门文章

  1. 【Linux】CentOS7上安装搜狗输入法
  2. PHP模板解析入门
  3. LAMP中php配置
  4. 高效重构 C++ 代码
  5. 利用excel去除txt文本中重复项
  6. 输出C语言中 变量的类型
  7. JavaScript对象this指向(普通键this指向 非指向函数的键)
  8. sort-colors——排序3种数字
  9. MySQL查询缓存设置提高MySQL查询性能
  10. 简单的 nginx 多站点配置