2

/*コンパイラによって、 と を含むとの間のすべてが*/無視されるのではないですか? 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

}
4

4 に答える 4

15

空白 (空白、タブ、改行) を挿入できる場所でのみ機能します。

于 2013-05-16T07:59:23.267 に答える
6

コメントは、パーサーによって空白のように扱われます。したがって、 と の間に置く89、1 つの数字ではなく、スペースで区切られた 2 つの数字になります。

于 2013-05-16T07:59:59.327 に答える