编译器不应该忽略所有介于两者之间/*
的所有内容*/
吗?它不应该在 C 程序中无处不在,就像不存在一样被忽略吗?为什么在我的程序中它在最不可能的地方工作,但是在其他地方失败?评论的规则是什么?在我的以下程序中观察评论背后的原因是什么?
#include<stdio.h>
#include<string.h>
int main(void)
{
char str1/*works*/[90]; //comment works
FILE *fp=fopen("D:\\source.txt","r");
if(fp==NULL){p/*Fails*/rintf("ERROR");return 0;} //comment fails
while(fgets(str1,8/*Fails*/9,fp)!=NULL) //comment fails
{
if(strstr(str1,"999.999")==/*Works*/NULL) //comment works
printf("%s",str1);
}
fclose/*Works*/(fp); //comment works
}