我有一個文件a.c
,a.h
,它用作其他文件中功能的支持模塊。文件指針未定義的錯誤
在這些函數中,我必須打開一個文件並執行讀取數據,寫入數據,關閉它等功能。
出於這些目的,我把文件指針的全局聲明中a.c
通過
static FILE* pFile;
,並直接使用pFile
。
編譯器被扔錯誤的錯誤是這樣的:
"pFile" not defined in the function
有什麼不對嗎?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#include <arpa/inet.h>
#define path "/tmp/diag.log"
FILE* pFile;
void a(bool value) {
if (value) {
pFile = fopen (path,"a");
return;
}
else if (!value) {
fclose (pFile);
}
}
void b(bool value) {
if(value)
{
fprintf (pFile,"%s",message);
}
}
更新: 錯誤是我的makefile從build目錄中取文件和變化沒有得到reflected.Thanks很多關於你的幫助
你明白的需求和影響靜態存儲類? –
hehe ...這是一個錯誤..在這 – Ram
幫助我請[請閱讀如何問好問題](http://stackoverflow.com/help/how-to-ask)。然後編輯您的問題以包含[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve),以及實際的錯誤消息(完整,完整且無需修改)作爲文本。 –