主要内容:由/* */ 引起的注释错误
有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 &n