我在C(Linux操作系統)編程。我必須讀取一個文件,檢查該文件中的函數並打印相應的函數名稱。到目前爲止,我已經編程通過深度計算'{'來識別函數。我知道__FUNCTION__
預處理器指令用於打印當前文件的函數名稱。同樣,是否有任何預處理器指令用於查找我們讀取的文件的函數名稱?我不關心任何特定的工具。我想要編程。請引導我。提前致謝。C程序找到一個c文件的函數名稱
我試圖實現此代碼。此函數採用行(它在'{')之前作爲參數。
void ffname(char line[100])
{
int i,j,m,n,f=0;
char dt[10],fname[28];
char s[5][10]={"int","void","struct","char","float"};
dt = strtok(line," ");
for(i=0;i<5;i++)
{
m=strcmp(dt,s[i]);
if(m==0)
{
f=1;
n=strlen(dt);
}
}
if(f)
{
for(i=n+2,j=0;i<strlen(line);i++,j++)
{
if(line[i] == '*')
i++;
while(line[i] != '(')
{
fname[j]=line[i];
}
}
}
}
我不知道這段代碼是否正確。我可以用這種方式嗎?有沒有找到函數名稱的選項?
C預處理器使事情變得相當複雜。您可能需要調用預處理器,然後檢查預處理器指令被刪除後生成的文件。 – ChuckCottrill
編碼標準可以使這是一個更簡單的任務。只需要使用大括號將函數左對齊,需要其他所有的縮進,並且您可以輕鬆地檢測函數 - 左對齊開括號之前的內容:-)如果您還需要空行在函數類型和簽名之前,您可以收集函數聲明和開放聲明之間的所有內容 - 也就是說,如果您可以聲明編碼標準。漂亮的打印機可以將現有的代碼轉換爲符合標準的代碼。 – ChuckCottrill