addr01.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 50 行
C
50 行
#include "fail.h"
struct S {
static int sfn( int, int );
};
int S::sfn( int x, int y )
{
return x * 3 + y * 2;
}
struct A {
S m;
};
struct B : S {
};
struct D : B {
};
struct VD : virtual A {
};
int main()
{
auto int (*fn)( int, int );
S s;
A a;
B b;
D d;
VD vd;
fn = S::sfn;
if( fn( 1, 2 ) != 7 ) fail(__LINE__);
fn = &S::sfn;
if( fn( 1, 2 ) != 7 ) fail(__LINE__);
fn = s.sfn;
if( fn( 1, 2 ) != 7 ) fail(__LINE__);
fn = a.m.sfn;
if( fn( 1, 2 ) != 7 ) fail(__LINE__);
fn = b.sfn;
if( fn( 1, 2 ) != 7 ) fail(__LINE__);
fn = d.sfn;
if( fn( 1, 2 ) != 7 ) fail(__LINE__);
fn = vd.m.sfn;
if( fn( 1, 2 ) != 7 ) fail(__LINE__);
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?