如何测试FILE*(指向结构的指针)(如果== NULL)?

m4d*_*ign 1 c struct pointers

我正在玩C,无论如何我在想如何将文件指针(指向结构类型),如果为NULL则测试即时:

FILE *cfPtr;
if ( ( cfPtr = fopen( "file.dat", "w" ) ) == NULL )
Run Code Online (Sandbox Code Playgroud)

我试图自己做,但发生错误.

struct foo{
    int x;
};

struct foo bar = {0};

if (bar == NULL)
    puts("Yay\n");
else
    puts("Nay");
Run Code Online (Sandbox Code Playgroud)

错误C2088:'==':结构非法

这是stdio.h文件中的FILE减速:

struct _iobuf {
        char *_ptr;
        int   _cnt;
        char *_base;
        int   _flag;
        int   _file;
        int   _charbuf;
        int   _bufsiz;
        char *_tmpfname;
        };
typedef struct _iobuf FILE;
Run Code Online (Sandbox Code Playgroud)

Pét*_*rök 10

它应该是一个结构的指针:

struct foo* bar = ...

if (bar == NULL)
    puts("Yay\n");
else
    puts("Nay");
Run Code Online (Sandbox Code Playgroud)

确实可以测试结构的指针是否为零,就像指向原始类型的指针一样.