You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
521 B
38 lines
521 B
4 years ago
|
/*
|
||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
|
*
|
||
|
* This source code is licensed under the MIT license found in the
|
||
|
* LICENSE file in the root directory of this source tree.
|
||
|
*/
|
||
|
|
||
|
#include <assert.h>
|
||
|
|
||
|
typedef struct _ {
|
||
|
int a;
|
||
|
int b;
|
||
|
int c;
|
||
|
} S;
|
||
|
|
||
|
typedef int* (*F)(S*);
|
||
|
|
||
|
int* g(S* x) { return &(x->b); }
|
||
|
|
||
|
int* h(S* x) { return &(x->c); }
|
||
|
|
||
|
void main() {
|
||
|
S t;
|
||
|
void* x;
|
||
|
int* y;
|
||
|
F f;
|
||
|
|
||
|
f = &g;
|
||
|
x = &(t.a);
|
||
|
y = (*f)(x);
|
||
|
assert(x != y);
|
||
|
|
||
|
f = &h;
|
||
|
x = &(t.a);
|
||
|
y = (*f)(x);
|
||
|
assert(x != y);
|
||
|
}
|