注釋轉換。對於乙個專案有多個人來寫**,如果每個人的**注釋風格不一樣,有的人要用c注釋風格,有的人用c++注釋風格這就導致了,對於閱讀源**的人的不方便的問題。因此才會出現注釋轉換的這個東西。
本注釋轉換將所有程式的注釋全部轉換成c++**的注釋風格。
首先列出所有可能出現的情況:
// 1.一般情況
int num = 0;
/* int i = 0; */
// 2.換行問題
/* int i = 0; */int j = 0;
/* int i = 0; */
int j = 0;
// 3.匹配問題
/*int i = 0;/****xx*/
// 4.多行注釋問題
/*int i=0;
int j = 0;
int k = 0;
*/int k = 0;
// 5.連續注釋問題
/**//**/
// 6.連續的**/問題
/***/
// 7.c++注釋問題
// /**************/
對於這麼多的情況來進行注釋轉化,首先寫程式乙個個案例進行測試最後在將所有進行測試。
想法:狀態機
運用狀態機來進行實現:如圖:
運用狀態機對各種情況進行了分析。
接下來看看**:分成了三個部分,標頭檔案commentconvert.h,功能原始檔commentconvert.c,測試原始檔test.c
commentconvert.h
#ifndef __commentconvert_h__
#define __commentconvert_h__
#include #include enum state //狀態,四種,無注釋狀態,c注釋,cpp注釋,結束狀態
;void donulstate(file* pfin, file* pfout, enum state *state);//無注釋
void docstate(file* pfin, file* pfout, enum state *state);//c注釋
void docppstate(file* pfin, file* pfout, enum state *state);//cpp注釋
void commentconvert(file* pfin, file* pfout);//注釋轉換
#endif //__commentconvert_h__
commentconvert.c
#include "commentconvert.h"
void donulstate(file* pfin, file* pfout, enum state *state) //無注釋狀態
case '*':
default:
}} break;
case eof:
//fputc(frist, pfout);
*state = end_state;
break;
default:
fputc(frist, pfout);
*state = nul_state;
break; }}
// // 1.一般情況
// int num = 0;
// /* int i = 0; */
//// // 2.換行問題
// /* int i = 0; */int j = 0;
// /* int i = 0; */
// int j = 0;
//// // 3.匹配問題
// /*int i = 0;/****xx*/
//// // 4.多行注釋問題
// /*
// int i=0;
// int j = 0;
// int k = 0;
// */int k = 0;
//// // 5.連續注釋問題
// /**//**/
//// // 6.連續的**/問題
// /***/
//// // 7.c++注釋問題
// // /**************/
void docstate(file* pfin, file* pfout, enum state *state)//c注釋狀態 /* */
else if (third != '\n')//出現/* */int i = 0;情況,情況2
}*state = nul_state;
break;
case '*':
*state = c_state;
break;
default:
fputc(frist, pfout);
fputc(second, pfout);
*state = c_state;
break;
} }break;
case '\n':
*state = c_state;
break;
default:
fputc(frist, pfout); //出現/*ahdkj/*jlj*/情況,情況3
*state = c_state;
break; }}
void docppstate(file* pfin, file* pfout, enum state *state)//c++注釋狀態 //
}void commentconvert(file* pfin, file* pfout)//注釋轉換
}}
test.c
#include "commentconvert.h"
void test()
pfout = fopen("output.c", "w"); //以寫的方式開啟
if (pfout == null)
commentconvert(pfin, pfout);
//關閉所有檔案
fclose(pfin);
pfin = null;
fclose(pfout);
pfout = null;
}int main()
這就是所有**。如有錯誤請指出。 注釋轉換 (C語言注釋轉換為c 注釋)
1.一般情況 int num 0 int i 0 2.換行問題 int i 0 int j 0 int i 0 int j 0 3.匹配問題 int i 0 xx 4.多行注釋問題 int i 0 int j 0 int k 0 int k 0 5.連續注釋問題 6.連續的 問題 7.c 注釋問題 ...
C語言 注釋轉換
首先我們應該知道,在c語言中 編譯器預設的注釋風格是 而在c 中 編譯器預設的注釋風格是 注釋一行。這兩種注釋風格是可以互相轉換的。下面給上轉換後的結果 對該過程進行分析 程式 如下 commentconvert.h ifndef commeent convert h define commeent...
C語言 注釋轉換
如下 標頭檔案 commentconvert.h ifndef comment convert h define comment convert h define crt secure no warnings 1 define file name 0 include include include ...