c语言删除c文件注释,C语言源文件注释删除

写这个东西,主要是为了进行代码比较。因为在进行比较时,经常会比较出非常多的注释的不同,又没有实际意义。非常让人头疼。下面是代码:

void nvDoDelComment(FILE* in,FILE *out)

{

char c1;

char c2;

int iSts;

int iFlag;

iSts = COMMENT_NONE;

iFlag = -1;/* 需要判断“紧挨着”这个概念时,Flag设置为1。比如判断是否“/”和“*”紧挨着 */

while((c1=getc(in)) != EOF){

switch(c1){

case '/':

if(COMMENT_NONE == iSts){

iSts = FIRST_COMMENT_LINE;

iFlag = 1;

}

else if ((FIRST_COMMENT_LINE == iSts)&&(1 == iFlag)){

iSts = COMMENT_DOUBEL_LINE;

iFlag = 0;

}

else if ((SECOND_COMMENT_STAR == iSts)&&(1 == iFlag)){

iSts = COMMENT_END;

iFlag = 0;

}

else{}

break;

case '*':

if ((FIRST_COMMENT_LINE == iSts)&&(1 == iFlag)){

iSts = FIRST_COMMENT_STAR;

}

else if (FIRST_COMMENT_STAR == iSts){

iSts = SECOND_COMMENT_STAR;

iFlag = 1;

}

else{

}

break;

case '/n':

if (COMMENT_DOUBEL_LINE == iSts){

iSts = COMMENT_NONE;

}

if ((SECOND_COMMENT_STAR == iSts)){

iSts = FIRST_COMMENT_STAR;

}

else{}

break;

default:

if ((1 == iFlag)&&(FIRST_COMMENT_LINE == iSts)){

iSts = COMMENT_NONE;

putc(c2,out);

}

else if((0 == iFlag)&&(SECOND_COMMENT_STAR == iSts)){

iSts = FIRST_COMMENT_STAR;

}

iFlag = 0;

break;

}

if (COMMENT_NONE == iSts){

putc(c1,out);

}

else{}

if (iSts == COMMENT_END){

iSts = COMMENT_NONE;

}

else{}

c2 = c1;

}

}

没有注释。以后有兴趣的时候可能会添加。不过可能性不大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值