在轉換凝視前我們先了解乙個概念:什麼是有限狀態機?
有限狀態機fsm是軟體上經常使用的一種處理方法,它把複雜的控制邏輯分解成有限個穩定狀態。在每乙個狀態上進行處理。
有限狀態機是閉環系統。能夠用有限的狀態,處理無窮的事務。
// 通常我們使用多路分之語句來處理狀態機。即switch()、case語句
中要處理的情況例如以下
input.c:
//1.普通情況
/*int i = 0;*/
//2.換行問題
/*int y = 0;*/int j = 0;
//3.匹配問題
/*int x = 0;/*12345678*/
//4.多行凝視問題
/*int h = 0;
int g = 0;
int j = 0;
*/int q = 0;
//5.連續凝視問題
/**//**/
//6.連續的**/問題
/* ****** */
凝視問題
// /*1234567890*/
凝視本身不匹配問題
/*int i = 0;
原始檔annotationconvert.c
#include#include#include#pragma warning(disable:4996)
typedef enum state
sta;
typedef enum tag
tag;
sta annotationconvert(file* infile, file* outfile)
else if (secondch == '/')
a = tag_end;
}else
break;
case'*':
secondch = fgetc(infile);
if (secondch == '/')
else if (secondch == '*')
else
break;
case'\n':
if (a == tag_begin)
else
break;
default:
fputc(firstch, outfile);
break;
} } while (firstch != eof);
if (a == tag_end)
else
return 0;
}sta startconvert()
if (outfile == null)
s = annotationconvert(infile, outfile);
fclose(infile);
fclose(outfile);
return s;
}int main()
else if (ret == file_success)
else if (other_error)
else
return 0;
}
output.c中結果應例如以下:
//int i = 0;
//int y = 0;
int j = 0;
//int x = 0;/*12345678
////int h = 0;
//int g = 0;
//int j = 0;
//int q = 0;
////
// ******
// /*1234567890*/
不匹配
注釋轉換(C注釋轉換為c 注釋)
對於注釋轉換首先給出我的測試圖 由圖可以看出將左邊的c語言注釋轉換為右邊c 注釋就是注釋轉換 首先說明一下轉換思想方法 1.建立兩個檔案input.c和output.c,input.c裡面用來讀取c語言的注釋,output.c裡面儲存轉換成為c 的注釋,中間的轉換過程就是 完成,當然檔案名字和作用自...
C注釋轉換為C 注釋
我們將c注釋轉換為c 的注釋思路如下圖 此次我們通過將需要轉換的c注釋內容存於input.c檔案中,轉換後的內容存於output.c檔案中。input.c檔案 1.一般情況 int num 0 int i 0 2.換行問題 int i 0 int j 0 int i 0 int j 0 3.匹配問題...
注釋轉換 C注釋轉換為標準C 注釋
注釋轉換 c 注釋轉換為標準c語言注釋 直接上 include include include typedef enum state state typedef enum tag tag pragma warning disable 4996 state annotationconvert file...