c語言 注釋轉換

2021-08-20 19:21:49 字數 3320 閱讀 3749

注釋轉換。對於乙個專案有多個人來寫**,如果每個人的**注釋風格不一樣,有的人要用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 ...