diag0006.c

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 47 行

C
47
字号
/* Test function type mismatch warnings */

int __cdecl (*cdv)( int );
typedef int __cdecl (*cdt)( int );

int __watcall (*wcv)( int );
typedef int __watcall (*wct)( int );

int (*dcv)( int );
typedef int (*dct)( int );

int __cdecl cdf( int a ) { return( a ); }
int __watcall wcf( int a ) { return( a ); }
int dcf( int a ) { return( a ); }

int main( int argc, char **argv )
{
    cdt     cdlv;
    dct     dclv;
    wct     wclv;

    // Correct assignments
    cdv  = cdf;
    cdlv = cdf;
    dcv  = dcf;
    dclv = dcv;
    wcv  = wcf;
    wclv = wcf;

    // Incorrect assignments
    cdv  = dcf;
    cdv  = wcf;
    cdlv = dcf;
    cdlv = wcf;

    dcv  = cdf;
    dclv = cdf;

    wcv  = cdf;
    wclv = cdf;

    // Note: Assignments between __watcall and undecorated functions aren't
    // tested. At the moment it isn't clear whether those assignments should
    // be diagnosed or not (when compiling with -3r or equivalent).
    return( 0 );
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?